黑科技——回滚sqlserver truncate和drop表操作

隔离级别如下(默认的测试也可以)

黑科技——回滚sqlserver truncate和drop表操作

黑科技——回滚sqlserver truncate和drop表操作

尝试truncate该表

begin tran

truncate table DDMDemo

go

黑科技——回滚sqlserver truncate和drop表操作

此时在其他会话查询该表会被阻塞

黑科技——回滚sqlserver truncate和drop表操作

回滚操作

rollback

go

 

回到查询的会话,发现阻塞结束,且能查询出结果,回滚成功

黑科技——回滚sqlserver truncate和drop表操作

如果在还没回滚的时候truncate会话被kill了会怎样?

黑科技——回滚sqlserver truncate和drop表操作

Kill 53

黑科技——回滚sqlserver truncate和drop表操作

回到查询的会话,发现阻塞结束,且能查询出结果,说明truncate被回滚,也就是说sqlserver会话被kill的默认行为是回滚

 

Drop操作也是一样的,这里不另外贴图了。

关于sqlserver ddl和Oracle的区别,可以参考这个文章,颠覆了认知。。。。。

https://www.mssqltips.com/sqlservertip/4591/ddl-commands-in-transactions-in-sql-server-versus-oracle/