まず、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_
削除中にデッドロックが発生します。私はなぜなのか理解していない?
ガイドしてください!