テーブルがあり、行を挿入したいとします。新しい行のキーは、すでにテーブルの既存の行のキーと一致している可能性があります。この場合、既存の行を更新します。または、テーブルに存在しない可能性があります。新しい行を挿入する必要があります。T-SQL単一の高速操作で更新/挿入を行うことは可能ですか
このような操作を実行する最も効率的な方法は何ですか?最初にSELECT
(おそらくEXISTS
)を実行して、特定のキーが存在するかどうかを確認してから、UPDATE
(存在する場合)とINSERT
(存在しない場合)を考えました。競合状態を避けるために、おそらくUPDLOCK
とHOLDLOCK
をこのステートメントの組み合わせに保つ必要があります。これはあまりにも複雑で非効率的です。
SQL Server 2008 R2でこれを行うより効率的な方法があるのだろうかと思っていました。
非常に良い回答、+1 ... –