主因應該是LR2001所講得,有uncommit的transactions。
現在SQL server預設的isolate transaction level是read commit。所以未commit會造成read lock的情況。
如果可以有辦法不要使用交易,就可以簡單化這個情況。
或是更改transaction isolate level
(參考SET TRANSACTION ISOLATION LEVEL (Transact-SQL) (
http://msdn.microsoft.com/zh-tw/library/ms173763.aspx) 。如read uncommit就不會因交易作業而鎖住read動作。
使用trigger通常會慢一點,因主要原因是在transaction這裡鎖住了。
ycli6921兄是最好的解法。但是若是server cluster的環境下比較難實現。
其實在大部份情況下是可以不用動到交易的。