加入收藏 | 设为首页 | 会员中心 | 我要投稿 聊城站长网 (https://www.0635zz.com/)- 智能语音交互、行业智能、AI应用、云计算、5G!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

SQL Server中TRUNCATE事务回滚设置操作方法

发布时间:2023-08-01 15:22:01 所属栏目:MsSql教程 来源:
导读:我们一般都认为TruncATE是一种不可回滚的操作,它会删除表中的所有数据以及重置Identity列。

如果你在事务中进行TruncATE操作,就能回滚。反之,它就不会从日志文件文件恢复数据。它不会在日志文件中记录删除的那
我们一般都认为TruncATE是一种不可回滚的操作,它会删除表中的所有数据以及重置Identity列。
 
如果你在事务中进行TruncATE操作,就能回滚。反之,它就不会从日志文件文件恢复数据。它不会在日志文件中记录删除的那些数据,它只在日志中记录数据页的单元分配。
 
下面的例子就能解释上面的所说的.
 
代码如下:
 
GO
 
--创建一个临时表
 
CREATE TABLE TruncateTabel(ID INT)
 
INSERT INTO TruncateTabel(ID)
 
SELECT 1
 
UNION ALL
 
SELECT 2
 
UNION ALL
 
SELECT 3
 
GO
 
代码如下:
 
SELECT * FROM TruncateTabel
 
开始执行事务
 
代码如下:
 
--开始事务
 
BEGIN TRAN
 
TruncATE TABLE TruncateTabel
 
GO
 
--回滚之前检查TruncateTable
 
SELECT * FROM TruncateTabel
 
GO
 
F5执行,
 
执行回滚事务
 
代码如下:
 
ROLLBACK TRAN
 
GO
 
再次检查表TruncateTable
 
代码如下:
 
runcateTable
 
SELECT * FROM TruncateTabel
 
GO
 
F5执行,

runcATE操作进行回滚的。
 
 

(编辑:聊城站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章