より詳細なコードを記載した別の投稿がありますが、私の問題は次のロジックにあると思います。ストアド プロシージャを作成し、別のストアド プロシージャを呼び出し、呼び出されたプロシージャが最初のストアド プロシージャで使用される文字列を返すことは可能ですか?
例:
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;
終わり
次のストアド プロシージャは次のとおりです。
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;
「これは機能しました」が返されると思いますか?ただし、次の 2 つの結果が返されます。1) 成功 2) これは機能しませんでした
私は何を間違っていますか?