레코드가 발견되지 않으면 업데이트 또는 삽입하는 병합 쿼리가 있습니다. 내 결과에서 레코드가 존재하지 않고 삽입 될 때 문제가 발생합니다. 쿼리는 모두 '업데이트 됨'(빈 상태)과 '삽입 됨'(적절한 값 포함)을 반환합니다.MERGE 쿼리에서 하나의 OUTPUT 결과를 반환합니다.
아이디어가 없으면 업데이트가없는 경우 비어있는 '업데이트 됨'을 반환 하시겠습니까?
ALTER PROCEDURE [dbo].[spInsOrUpdApplicant]
-- Add the parameters for the stored procedure here
@Name nvarchar(50),
@Surname nvarchar(50),
@Position nvarchar(50),
@NationalID int,
@ApplicantID int
AS
BEGIN
SET NOCOUNT ON;
-- Update the row if it exists.
UPDATE tbApplicant
SET Name = @Name, Surname = @Surname, Position = @Position, NationalID = @NationalID
OUTPUT INSERTED.ApplicantID AS 'Result'
WHERE ApplicantID = @ApplicantID;
-- Insert the row if the UPDATE statement failed.
IF (@@ROWCOUNT = 0)
BEGIN
INSERT INTO tbApplicant (Name, Surname, Position, NationalID)
OUTPUT INSERTED.ApplicantID AS 'Result'
VALUES (@Name, @Surname, @Position, @NationalID)
END
END;