MSSQLSERVER_1205
新建日期: 2006 年 7 月 17 日
详细信息
产品名称 |
SQL Server |
产品版本 |
9.0 |
产品内部版本号 |
9.00.1281.60 |
事件 ID |
1205 |
事件源 |
MSSQLSERVER |
组件 |
SQLEngine |
符号名称 |
LK_VICTIM |
消息正文 |
事务(进程 ID %d)与另一个进程被死锁在 %.*ls 资源上,并且已被选作死锁牺牲品。请重新运行该事务。 |
说明
在不同事务中访问资源的顺序冲突,从而导致死锁。例如:
- Transaction1 更新 Table1.Row1,而 Transaction2 更新 Table2.Row2。
- Transaction1 尝试更新 Table2.Row2,但因 Transaction2 尚未提交而被阻塞。
- Transaction2 现在尝试更新 Table1.Row1,但因 Transaction1 尚未提交而被阻塞。
- 之所以出现死锁,是因为 Transaction1 在等待 Transaction2 完成,但 Transaction2 在等待 Transaction1 完成。
系统将检测到此死锁,并将所涉及的事务之一选作“牺牲品”,然后发出此消息,回滚牺牲品的事务。有关死锁的详细信息,请参阅死锁。
用户操作
重新执行事务。您还可以修订应用程序以避免死锁。可以重试被选作牺牲品的事务,而且很可能成功,具体取决于同时执行的操作。
为防止或避免出现死锁,请考虑让所有的事务按相同顺序(先访问 Table1,然后访问 Table2)访问行;这样,虽然可能会出现阻塞,但不会出现死锁。有关要进行的操作的详细信息,请参阅检测和结束死锁。