SQL Serverに1分間に数百回実行されるSPがあり、データベースに対して着信トラフィックをチェックする必要があります。現時点では、次のことを行います
INSERT INTO table
SELECT @value1,@value2 WHERE NOT EXISTS
(SELECT * FROM table WHERE value1 = @value1 AND value2 = @value2);
しかし、私も行くことができました
IF NOT EXISTS(SELECT * FROM table WHERE value1 = @value1 AND value2 = @value2)
INSERT INTO table (value1,value2) VALUES (@value1,@value2);
どちらが速いでしょうか?それらの間に大きな違いはないと感じますが、歴史的にTSQLはあまり得意ではありません... = /
更新:おっと... EXISTSはレコードが存在するかどうかを見つけるために複数の値を使用するため、一意の制約は機能しません。それを反映するようにサンプルを編集しました...