यदि यह वास्तव में आउटपुट पैरामीटर समस्या नहीं है, बल्कि एक परिणाम सेट है, तो यह अनुमान लगाएं कि 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