您现在的位置是:网站首页> 编程资料编程资料
SQL Server中TRUNCATE事务回滚操作方法_mssql2005_
2023-05-27
381人已围观
简介 SQL Server中TRUNCATE事务回滚操作方法_mssql2005_
我们一般都认为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
GO
--创建一个临时表
CREATE TABLE TruncateTabel(ID INT)
INSERT INTO TruncateTabel(ID)
SELECT 1
UNION ALL
SELECT 2
UNION ALL
SELECT 3
GO
复制代码 代码如下:
--检查插入的数据
SELECT * FROM TruncateTabel
SELECT * FROM TruncateTabel
如图:

开始执行事务
复制代码 代码如下:
--开始事务
BEGIN TRAN
TRUNCATE TABLE TruncateTabel
GO
--回滚之前检查TruncateTable
SELECT * FROM TruncateTabel
GO
F5执行,如图:

执行回滚事务
复制代码 代码如下:
--回滚事务
ROLLBACK TRAN
GO
ROLLBACK TRAN
GO
再次检查表TruncateTable
复制代码 代码如下:
--回滚之后再次检查TruncateTable
SELECT * FROM TruncateTabel
GO
SELECT * FROM TruncateTabel
GO
F5执行,如图:
总结一下,事务是可以对TRUNCATE操作进行回滚的。
您可能感兴趣的文章:
相关内容
- 把CSV文件导入到SQL Server表中的方法_mssql2005_
- SQL Server 使用 SET FMTONLY ON 获得表的元数据_mssql2005_
- SQL Server 在Management Studio中使用Web浏览器_mssql2005_
- sql server 关于设置null的一些建议_mssql2005_
- SQL Server 2005 中使用 Try Catch 处理异常_mssql2005_
- SQL2005重新生成索引的的存储过程 sp_rebuild_index[原创]_mssql2005_
- SQL2005查看死锁存储过程sp_who_lock_mssql2005_
- SQL Server 2005 Management Studio Express企业管理器将英文变成简体中文版的实现方法_mssql2005_
- 更改SQL Server 2005数据库中tempdb位置的方法_mssql2005_
- 简述SQL Server 2005数据库镜像相关知识_mssql2005_
