首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何故意造成死锁?

如何故意造成死锁?
EN

Stack Overflow用户
提问于 2011-10-19 04:32:07
回答 2查看 20.6K关注 0票数 14

因此,我正在尝试追踪看起来像是死锁问题的here。我已经使用DBCC TRACEON(1222,-1)和DBCC TRACEON(1204,-1)启用了死锁日志。我想测试以确保日志记录捕捉到死锁,那么如何在MS SQL2005中导致死锁发生?谢谢,

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-10-19 04:58:42

下面是一些故意导致死锁的T-SQL。

对象创建:

代码语言:javascript
复制
CREATE TABLE dbo.DeadLockTest (col1 INT)
INSERT dbo.DeadLockTest SELECT 1

CREATE TABLE dbo.DeadLockTest2 (col1 INT)
INSERT dbo.DeadLockTest2 SELECT 1

打开一个新的查询窗口,粘贴以下代码并执行:

代码语言:javascript
复制
BEGIN TRAN
UPDATE dbo.DeadLockTest SET col1 = 1

打开另一个新的查询窗口,粘贴并执行以下代码:

代码语言:javascript
复制
BEGIN TRAN
UPDATE dbo.DeadLockTest2 SET col1 = 1
UPDATE dbo.DeadLockTest SET col1 = 1

返回到您的第一个查询窗口(使用第一个BEGIN TRAN语句)并执行以下代码:

代码语言:javascript
复制
UPDATE dbo.DeadLockTest2 SET col1 = 1

瞧!这是一个僵局。

票数 36
EN

Stack Overflow用户

发布于 2011-10-19 04:35:44

这应该是可行的:

  • 插入A和B两条记录。

  • 打开两个事务处理。

第一个事务中的

  • 更新记录A和第二个事务中的B

  • 当你确定这些更新已经完成时:

代码语言:javascript
复制
- Update record B in the first transaction and A in the second transaction.

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7813321

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档