レコードがまだ存在しない場合にテーブルにレコードを挿入するためのより良いテクニックは何ですか?
問題は、コードが基準を持つレコードが存在するかどうかをチェックし、存在しない場合はレコードを作成することです。ただし、2番目のスレッドがやって来て、同時にチェックする可能性があります。
エレファントガンを使用しているように感じましたが、最初は機能したTABLOCKXの実験を開始しましたが、スナップショットアイソレーションの使用も検討しており、2番目のトランザクションが実行されて読み取ることができるコンテキストでは機能しません。テーブル。
これは一般的な問題であるため、より標準的な解決策があるはずです。検索対象のフィールドにはnullが含まれている可能性があり、SQL Server 2005はそのコンテキストでの一意の制約をサポートしていないため、ここでは一意のインデックスは適切ではないことに注意してください。