まず、SQL Server 2005 でのデッドロックの実際の根本的な原因を知りたいと思います。それは、2 つのプロセスがテーブルの同じ行にアクセスするためですか?
とにかく、2 つのテーブル_Table_Now_
と_Table_History_
、両方が同じ構造を持つ場所を考えてみましょう。
という 1 つの列があるとしNAME
ます。
NAME='BLUE'
そのため、あるプロセスがinでレコードを UPDATE しようとすると_Table_Now_
、最初に現在の行をupdate
にNAME='BLUE'
入れ、以前に存在していた行を から削除する必要があります。_Table_History_
_Table_Now_
_Table_History_
削除中にデッドロックが発生します。私はなぜなのか理解していない?
ガイドしてください!