DBMNG数据库管理与应用

才能是来自独创性。独创性是思维、观察、理解和判断的一种独特的方式。
当前位置:首页 > SQLServer > 技术手册

SQLServer死锁测试

SQL Server死锁问题很值得我们去研究,下面就作了一个相关方面的测试,看看究竟什么时候会出现SQL Server死锁问题。

SQL Server死锁测试 
--增设 帐户表_2 
CREATE TABLE 帐户表_2 

帐号 CHAR(4), 
余额 INT 

GO 
INSERT 帐户表_2 
SELECT 'C',100 
UNION ALL 
SELECT 'D',200

--在第一个连接中执行以下语句 
BEGIN TRAN 
UPDATE 帐户表 SET 余额=3 WHERE 帐号='A' 
WAITFOR DELAY '00:00:10' 
UPDATE 帐户表_2 SET 余额=3 WHERE 帐号='C' 
COMMIT TRAN

--在第二个连接中执行以下语句 
BEGIN TRAN 
UPDATE 帐户表_2 SET 余额=4 WHERE 帐号='C' 
WAITFOR DELAY '00:00:10' 
UPDATE 帐户表 SET 余额=4 WHERE 帐号='A' 
COMMIT TRAN

--删除测试表 
DROP TABLE 帐户表,帐户表_2

--同时执行,系统会检测出死锁,第一个连接的事务可能正常执行,SQL Server 终止第二个连接的事务(不涉及超时)。 
--如果没有出现死锁,则在其它事务释放锁之前,请求锁的事务被阻塞。 
--LOCK_TIMEOUT 设置允许应用程序设置语句等待阻塞资源的最长时间。

4、更新数据时候允许进行插入 
5、插入数据时不允许更新\读取

本站文章内容,部分来自于互联网,若侵犯了您的权益,请致邮件chuanghui423#sohu.com(请将#换为@)联系,我们会尽快核实后删除。
Copyright © 2006-2023 DBMNG.COM All Rights Reserved. Powered by DEVSOARTECH            豫ICP备11002312号-2

豫公网安备 41010502002439号