amwdnuff 发表于 2009-9-25 22:45

模拟SQLSERVER 2005共享锁引起的死锁 死锁示例

模拟SQLSERVER 2005共享锁引起的死锁 死锁示例
5.1 SQL死锁

(1). 测试用的基础数据:

CREATE TABLE Lock1(C1 int default(0));
CREATE TABLE Lock2(C1 int default(0));
INSERT INTO Lock1 VALUES(1);
INSERT INTO Lock2 VALUES(1);


(2). 开两个查询窗口,分别执行下面两段sql
--Query 1
Begin Tran
Update Lock1 Set C1=C1+1;
WaitFor Delay '00:01:00';
SELECT * FROM Lock2
Rollback Tran;

--Query 2
Begin Tran
Update Lock2 Set C1=C1+1;
WaitFor Delay '00:01:00';
SELECT * FROM Lock1
Rollback Tran;

3)、测试完后删除这两张表。
drop table Lock1;
drop table Lock2;

amwdnuff 发表于 2009-9-25 22:45

模拟SQLSERVER 2005共享锁引起的死锁 死锁示例

模拟SQLSERVER 2005共享锁引起的死锁 死锁示例
5.1 SQL死锁

(1). 测试用的基础数据:

CREATE TABLE Lock1(C1 int default(0));
CREATE TABLE Lock2(C1 int default(0));
INSERT INTO Lock1 VALUES(1);
INSERT INTO Lock2 VALUES(1);


(2). 开两个查询窗口,分别执行下面两段sql
--Query 1
Begin Tran
Update Lock1 Set C1=C1+1;
WaitFor Delay '00:01:00';
SELECT * FROM Lock2
Rollback Tran;

--Query 2
Begin Tran
Update Lock2 Set C1=C1+1;
WaitFor Delay '00:01:00';
SELECT * FROM Lock1
Rollback Tran;

3)、测试完后删除这两张表。
drop table Lock1;
drop table Lock2;

amwdnuff 发表于 2009-9-25 22:45

模拟SQLSERVER 2005共享锁引起的死锁 死锁示例

模拟SQLSERVER 2005共享锁引起的死锁 死锁示例
5.1 SQL死锁

(1). 测试用的基础数据:

CREATE TABLE Lock1(C1 int default(0));
CREATE TABLE Lock2(C1 int default(0));
INSERT INTO Lock1 VALUES(1);
INSERT INTO Lock2 VALUES(1);


(2). 开两个查询窗口,分别执行下面两段sql
--Query 1
Begin Tran
Update Lock1 Set C1=C1+1;
WaitFor Delay '00:01:00';
SELECT * FROM Lock2
Rollback Tran;

--Query 2
Begin Tran
Update Lock2 Set C1=C1+1;
WaitFor Delay '00:01:00';
SELECT * FROM Lock1
Rollback Tran;

3)、测试完后删除这两张表。
drop table Lock1;
drop table Lock2;
页: [1]
查看完整版本: 模拟SQLSERVER 2005共享锁引起的死锁 死锁示例