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

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

黑科技——回滚sqlserver truncate和drop表操作_第1张图片

黑科技——回滚sqlserver truncate和drop表操作_第2张图片

尝试truncate该表

begin tran

truncate table DDMDemo

go

黑科技——回滚sqlserver truncate和drop表操作_第3张图片

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

黑科技——回滚sqlserver truncate和drop表操作_第4张图片

回滚操作

rollback

go

 

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

黑科技——回滚sqlserver truncate和drop表操作_第5张图片

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

黑科技——回滚sqlserver truncate和drop表操作_第6张图片

Kill 53

黑科技——回滚sqlserver truncate和drop表操作_第7张图片

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

 

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

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

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

你可能感兴趣的:(sqlserver,备份还原)