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

作者:xbf321 时间:2024-01-20 14:43:23 

我们一般都认为TRUNCATE是一种不可回滚的操作,它会删除表中的所有数据以及重置Identity列。

如果你在事务中进行TRUNCATE操作,就能回滚。反之,它就不会从日志文件文件恢复数据。它不会在日志文件中记录删除的那些数据,它只在日志中记录数据页的单元分配。

下面的例子就能解释上面的所说的.        

USE temp_test_database
GO
--创建一个临时表
CREATE TABLE TruncateTabel(ID INT)
INSERT INTO TruncateTabel(ID)
SELECT 1
UNION ALL
SELECT 2
UNION ALL
SELECT 3
GO

--检查插入的数据
SELECT * FROM TruncateTabel

如图:

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

开始执行事务


--开始事务
BEGIN TRAN
TRUNCATE TABLE TruncateTabel
GO
--回滚之前检查TruncateTable
SELECT * FROM TruncateTabel
GO

F5执行,如图:

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

执行回滚事务

--回滚事务
ROLLBACK TRAN
GO

再次检查表TruncateTable

--回滚之后再次检查TruncateTable
SELECT * FROM TruncateTabel
GO

F5执行,如图:
SQL Server中TRUNCATE事务回滚操作方法

总结一下,事务是可以对TRUNCATE操作进行回滚的。

标签:sql,TRUNCATE
0
投稿

猜你喜欢

  • Mac Homebrew安装的MySQL无法远程登录的解决

    2024-01-14 12:12:56
  • js省市联动效果完整实例代码

    2024-04-18 10:15:34
  • vuex中使用对象展开运算符的示例

    2024-05-28 15:59:44
  • Python中的变量与常量

    2022-01-14 22:26:43
  • golang一些常用的静态检查工具详解

    2024-04-25 13:16:17
  • Python中使用tkFileDialog实现文件选择、保存和路径选择

    2022-02-17 09:35:32
  • JS截取与分割字符串常用技巧总结

    2024-02-26 13:48:45
  • Python嵌套循环的使用

    2022-11-12 17:19:23
  • centos6.7安装python2.7.11的具体方法

    2022-04-29 00:42:54
  • Python的字典和列表的使用中一些需要注意的地方

    2023-01-09 02:03:52
  • Python Matplotlib简易教程(小白教程)

    2023-12-29 05:31:57
  • pytorch加载预训练模型与自己模型不匹配的解决方案

    2023-06-17 14:22:24
  • 手把手教你用Hexo+Github搭建属于自己的博客(详细图文)

    2022-11-29 10:34:21
  • pandas创建新Dataframe并添加多行的实例

    2021-06-21 07:11:48
  • pycharm 使用心得(二)设置字体大小

    2022-02-19 15:37:04
  • 用Python制作一个文件加密器

    2023-01-16 02:41:05
  • SqlServer如何通过SQL语句获取处理器(CPU)、内存(Memory)、磁盘(Disk)以及操作系统相关信息

    2024-01-17 20:18:16
  • SQL函数substr使用简介

    2024-01-27 11:12:02
  • 详解MySQL下InnoDB引擎中的Memcached插件

    2024-01-24 22:02:35
  • 全文译稿 Windows Internet Explorer 8 性能优化白皮书

    2010-04-23 20:13:00
  • asp之家 网络编程 m.aspxhome.com