MyTable(MyTableId NVARCHAR(MAX)PRIMARY KEY、NumberOfInserts INTEGER)のテーブル構造を仮定します。SQL ServerのINSERTまたはUPDATEに対する安全なソリューション2016
NumberOfInsertsの値が0でない場合は、既存のレコードのカウンタを増分するか、新しいレコードを挿入する必要があることがよくあります。基本的に
:
IF (MyTableId exists)
run UPDATE command
ELSE
run INSERT command
私の関心は、競合状態に起因するデータを失っている、など
これを書くために最も安全な方法は何ですか?
可能であれば100%の精度が必要で、必要な場合は速度を犠牲にしてください。
MERGEコマンドを使用すると、一度にすべての更新、挿入、削除を組み合わせることができます。いくつかの観測結果は、SQL Serverの予約語である「キー」という列を呼び出さないでください。また、それを主キーとして使用していますか?もしそうなら、NVARCHAR(MAX)は本当に悪い考えです。 –