Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

क्या हम किसी अन्य संग्रहीत प्रक्रिया के अंदर एक उप फ़ंक्शन या प्रक्रिया लिख ​​सकते हैं?

मैं ऐसा करने की अनुशंसा नहीं करता क्योंकि हर बार जब इसे बनाया जाता है तो एक नई निष्पादन योजना की गणना की जानी चाहिए, लेकिन हाँ, यह निश्चित रूप से किया जा सकता है (सब कुछ संभव है, लेकिन हमेशा अनुशंसित नहीं)।

यहां एक उदाहरण दिया गया है:

CREATE PROC [dbo].[sp_helloworld]
AS
BEGIN
    SELECT 'Hello World'
    DECLARE @sSQL VARCHAR(1000)
    SET @sSQL = 'CREATE PROC [dbo].[sp_helloworld2]
            AS
            BEGIN
                SELECT ''Hello World 2''
            END'
    EXEC (@sSQL)

    EXEC [sp_helloworld2];
    DROP PROC [sp_helloworld2];
END

आपको चेतावनी मिलेगी

The module 'sp_helloworld' depends on the missing object 'sp_helloworld2'.
The module will still be created; however, it cannot run successfully until
the object exists.

आप उपरोक्त EXEC('sp_helloworld2') का उपयोग करके इस चेतावनी को बायपास कर सकते हैं।

लेकिन अगर आप EXEC [sp_helloworld] को कॉल करते हैं तो आपको परिणाम मिलेंगे

Hello World
Hello World 2


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एसएसआईएस में यूपीएसईआरटी

  2. डिग्री () SQL सर्वर में उदाहरण

  3. टेबल में प्राथमिक कुंजी के लिए सबसे अच्छा अभ्यास क्या है?

  4. SQL दिनांक चर की तुलना अशक्त करने के लिए इस तरह से व्यवहार क्यों करता है?

  5. SQL सर्वर:गलत संस्करण 661 संलग्न करें