我有另一篇文章更詳細的代碼,但我認爲我的問題在於以下邏輯。是否有可能有一個存儲過程,調用另一個存儲過程,並且被調用過程返回一個字符串用於第一個存儲過程?返回字符串與存儲過程
例子:
ALTER PROCEDURE [dbo].[SP1]
-- Add the parameters for the stored procedure here
@output nvarchar(30)
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
Declare @SP2Input nvarchar(30) = 'Input';
Declare @SP2Output nvarchar(30);
Execute @SP2Output = SP2 @SP2Input, @SP2Output;
If @SP2Output = 'Success'
Begin
Set @output = 'This worked';
End
Else
Begin
Set @output = 'This did not work';
End
Select @output;
END
這裏是下一個存儲過程:
ALTER PROCEDURE [dbo].[SP2]
-- Add the parameters for the stored procedure here
@input nvarchar(30),
@output nvarchar(30) out
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
If @input = 'Input'
Begin
Set @output = 'Success';
End
Else
Begin
Set @output = 'Fail';
End
Select @output;
END
那麼,什麼將得到恢復到任何調用存儲過程SP1?
Declare @output nvarchar(30);
Execute SP1 @output;
我會假設'這工作'會返回?但是,返回了兩個結果: 1)成功 2)這不起作用
我在做什麼錯?
你能嘗試改變SP調用('執行@ SP2Output = SP2 @ SP2Input, @ SP2Output;')與[MSDN](http://msdn.microsoft.com/en-us/library/ms187004(v = sql.105).aspx)頁面上顯示的相似內容? – Caramiriel
@ Caramiriel - 這工作。謝謝。 – user2511772