如何故意造成僵局? [英] How to deliberately cause a deadlock?
问题描述
所以我试图找出看起来像死锁的问题 此处.我已经使用 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屋!