sql-server – 模拟死锁的代码

前端之家收集整理的这篇文章主要介绍了sql-server – 模拟死锁的代码前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在测试我的应用程序我需要一些稳定模拟数据库站点上的死锁的代码(如果可能的话,sql脚本).

谢谢.

添加

Reproducing deadlocks involving only one table

解决方法

最好的方法是使用已有的表格.
创建两个表 – table-a,table-b
对于测试,您甚至可以使用相同的信息更新同一列
所以你不会影响任何真实的数据.

例如
UPDATE table_a set ID = ID,其中ID = 100;

打开两个会话到同一个数据库.
一,运行

BEGIN TRAN
update table_a set ID=ID where ID = 100;

两跑

BEGIN TRAN
update table_b set ID=ID where ID =100;

然后,将更新语句复制到对方会话并同时运行.
在一个,

update table_b set ID=ID where ID =100;

成两半

update table_a set ID=ID where ID = 100;

我刚刚尝试了这个并开始使用MS-sql

Msg 1205,Level 13,State 56,Line 1
Transaction (Process ID 23) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction.
原文链接:https://www.f2er.com/mssql/79669.html

猜你在找的MsSQL相关文章