2017-08-04 9 views
-1

私は、以下のSPを持っているが、それはMERGEを使用することが可能であるか、私は基本的な場合に一緒に行く必要がありますSQLでマージします。存在するよりも優れていますか?

create procedure Test 
    @DocumentTypeId int, 
    @PAdmissionID int, 
    @UMStatusID int, 
    @UserId int, 
    @DocumentType varchar(50) 
    as 
    Begin 

Merge [dbo].Test T 
Using (select DocumentTypeId,DocumentType from UMStatusToAdmissionLink where PAdmissionID = @PAdmissionID and UserID = @UserId) as S 
On(@DocumentTypeId = S.DocumentTypeId and @DocumentType = S.DocumentType and T.PAdmissionID = S.AdmissionID) 
When Matched 
Then Update set UMStatusId = @UMStatusID; 
    End 

私たちの環境がありEXISTS:レプリケーション、トラフィックの多くは、ハンドルの並行性をマージしますか?

+3

どのDBサーバーを使用していますか? –

+1

使用しているDBMSにタグを付けます。そのコードは製品固有です。 – jarlh

答えて

1

MERGEは、1つのT-SQLコマンドでUPDATEINSERTの両方を実行するように設計されています。 UPDATEを実行している場合は、UPDATEを実行してください。

IF EXISTSは必要ありません。あなたはただの条件をWHERE句に入れることができます。条件に一致するものがなければ、何も更新されません。

+0

DDL?データ定義言語のように? – jarlh

関連する問題