如何故意造成僵局? [英] How to deliberately cause a deadlock?

查看:41
本文介绍了如何故意造成僵局?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

所以我试图找出看起来像死锁的问题 此处.我已经使用 DBCC TRACEON(1222,-1) 和 DBCC TRACEON(1204,-1) 启用了死锁日志记录.我想测试以确保日志记录捕获死锁,那么如何在 MS SQL 2005 中导致发生死锁?谢谢,

So I'm trying to track down what looks like a deadlock problem here. I've enabled deadlock logging using DBCC TRACEON(1222,-1) and DBCC TRACEON(1204 ,-1). I'd like to test to make sure the logging catches the deadlock, so how can I cause one to occur in MS SQL 2005? Thanks,

推荐答案

这里有一些 T-SQL 故意造成死锁.

Here's some T-SQL to deliberately cause a deadlock.

对象创建:

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

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

打开一个新的查询窗口并粘贴此代码并执行它:

Open up a new query window and paste this code and execute it:

BEGIN TRAN
UPDATE dbo.DeadLockTest SET col1 = 1

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

Open up another new query window and paste and execute this code:

BEGIN TRAN
UPDATE dbo.DeadLockTest2 SET col1 = 1
UPDATE dbo.DeadLockTest SET col1 = 1

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

Go back to your first query window (with the first BEGIN TRAN statement) and execute this code:

UPDATE dbo.DeadLockTest2 SET col1 = 1

瞧!这是一个僵局.

这篇关于如何故意造成僵局?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆