0

あるストアド プロシージャの出力値を別のストアド プロシージャで使用したい。

ストアド プロシージャ 1:

Create PROCEDURE [dbo].[usp_AddUpdateUser]      
     @UserId INT,
     @Email varchar(50),
     @FirstName varchar(50)
AS      
BEGIN
     MERGE [User] AS target
     USING (SELECT @UserId) AS source (Id)
     ON target.Id = source.Id

     WHEN MATCHED THEN
         UPDATE 
             SET Email = @Email,
                 FirstName = @FirstName

     WHEN NOT MATCHED THEN
        INSERT (Email, FirstName)
        VALUES (@Email, @FirstName)

     OUTPUT inserted.Id;
  END

ここで、上記のストアド プロシージャの挿入された ID を以下のストアド プロシージャに使用したいと考えています。

ALTER PROCEDURE usp_AddUpdateDealer 
   (@Id INT,
    @DealerName varchar(55),
    @Email varchar(55),
    @UserId INT)
AS      
BEGIN
    DECLARE @NewUserId INT 

    EXEC @NewUserId = usp_AddUpdateUser @UserId, @Email, @DealerName

    MERGE Dealer AS target
    USING (SELECT @Id) AS source (Id) ON target.Id = source.Id

    WHEN MATCHED THEN
        UPDATE 
            SET @DealerName = @DealerName,
                Email = @Email,
                UserId = @NewUserId

    WHEN NOT MATCHED THEN
        INSERT (DealerName, Email, UserId)
        VALUES (@DealerName, @Email, @NewUserId)

    OUTPUT inserted.Id;
END

@NewUserIdnot は出力値を与えません。

usp_AddUpdateUser次のステートメントで使用するストアド プロシージャの出力オプションを取得するにはどうすればよいですか?

4

1 に答える 1