あるストアド プロシージャの出力値を別のストアド プロシージャで使用したい。
ストアド プロシージャ 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
@NewUserId
not は出力値を与えません。
usp_AddUpdateUser
次のステートメントで使用するストアド プロシージャの出力オプションを取得するにはどうすればよいですか?