2017-09-15 113 views
1
Declare @IsInserted Bit 
Declare @Date Datetime=Getdate(); 

MERGE MASTERSUBJECT AS T 
USING #TEMPSUBJECT AS S 
ON T.ID=S.ID 
WHEN NOT MATCHED BY TARGET THEN 
INSERT (TITLE,OREDRNO,DTMADD,[STATUS]) 
VALUES(S.TITLE,(select MAX(OREDRNO)+1 from 
MASTERSUBJECT),@DATE,1) 
SET @IsInserted=1  /* IF the record is inserted*/ 

在上面的代碼中,如果插入成功,我想更新@IsInserted變量。在SQL Server中使用合併運算符設置變量值

+0

什麼是您當前的錯誤? –

+1

1.你不需要MERGE; 2.在INSERT後使用@@ ROWCOUNT來檢查它 –

+0

對不起但是我想用合併,如果你有任何方法做,那麼請讓我知道 –

回答

1

對於合併,這裏不需要變量。只需使用OUTPUT子句。這是它的設計目的。

OUTPUT 
    $action, 
    inserted.*, 

或者替代...

DECLARE @IsInserted int 
SET @IsInserted= ISNULL(@IsInserted, SCOPE_IDENTITY());