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

किसी अन्य संग्रहीत प्रक्रिया के अंदर एक संग्रहीत प्रक्रिया का आउटपुट पैरामीटर लौटाएं

यदि यह वास्तव में आउटपुट पैरामीटर समस्या नहीं है, बल्कि एक परिणाम सेट है, तो यह अनुमान लगाएं कि SpWithOutputID ऐसा कुछ करता है (एक SELECT देता है सिंगल रो और सिंगल कॉलम के साथ):

CREATE PROCEDURE dbo.SpWithOutputID
AS
BEGIN
    SET NOCOUNT ON;

    SELECT ID = 4;
END
GO

फिर Test1 इस तरह दिख सकता है:

CREATE PROCEDURE dbo.Test1
AS
BEGIN
    SET NOCOUNT ON;

    DECLARE @ID INT;

    CREATE TABLE #x(ID INT);

    INSERT #x EXEC dbo.SpWithOutputID;

    SELECT TOP (1) @ID = ID FROM #x;

    DROP TABLE #x;
END
GO

लेकिन क्या यह आपको वास्तव में गन्दा नहीं लगता? यह वास्तव में एकल, अदिश मानों के लिए इस प्रकार कार्य करना चाहिए:

CREATE PROCEDURE dbo.SpWithOutputID
    @ID INT OUTPUT 
AS
BEGIN
    SET NOCOUNT ON;

    SELECT @ID = 4; 
END 
GO

अब वास्तव में एक आउटपुट पैरामीटर का उपभोग करना बहुत आसान है:

CREATE PROCEDURE dbo.Test1
AS
BEGIN
    SET NOCOUNT ON;
    DECLARE @ID INT;

    EXEC dbo.SpWithOutputID @ID = @ID OUTPUT;

    SELECT @ID;
END
GO



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL सर्वर में पंक्ति-स्तरीय सुरक्षा का परिचय

  2. SQL सर्वर पर सभी विस्तारित गुण छोड़ें

  3. पिवट टेबल और समवर्ती कॉलम

  4. एसक्यूएल प्रतिस्थापन समारोह के अंदर रेगेक्स पैटर्न?

  5. SQL सर्वर में किसी मौजूदा तालिका में प्राथमिक कुंजी कैसे जोड़ें (T-SQL उदाहरण)