delete和truncate的一个严重区别

 

 

--创建测试表

CREATE  TABLE test1(id int)

 

 

delete

 

会话一

 

BEGIN TRAN

delete test1
INSERT test1
SELECT 1

 

会话二

 

INSERT test1
SELECT 1

 

一先,二后,二瞬间完成,没有发生阻塞

---------------------------------------------------------------------

 

 

sp_lock

 

 

 

 

------------------------------------------------------------------------------------------------

 

truncate

 

会话一

 

BEGIN TRAN

truncate  table test1
INSERT test1
SELECT 1

 

会话二

 

INSERT test1
SELECT 1

 

一先,二后,二发生阻塞,一没有提交,也没有回滚,二一直等待

---------------------------------------------------------------------

 

 

sp_lock

 

 

posted @ 2012-06-09 10:21  qanholas  阅读(621)  评论(0编辑  收藏  举报