SQL Server中TRUNCATE事務(wù)回滾操作方法
我們一般都認為TRUNCATE是一種不可回滾的操作,它會刪除表中的所有數(shù)據(jù)以及重置Identity列。
如果你在事務(wù)中進行TRUNCATE操作,就能回滾。反之,它就不會從日志文件文件恢復(fù)數(shù)據(jù)。它不會在日志文件中記錄刪除的那些數(shù)據(jù),它只在日志中記錄數(shù)據(jù)頁的單元分配。
下面的例子就能解釋上面的所說的.
GO
--創(chuàng)建一個臨時表
CREATE TABLE TruncateTabel(ID INT)
INSERT INTO TruncateTabel(ID)
SELECT 1
UNION ALL
SELECT 2
UNION ALL
SELECT 3
GO
SELECT * FROM TruncateTabel
如圖:

開始執(zhí)行事務(wù)
--開始事務(wù)
BEGIN TRAN
TRUNCATE TABLE TruncateTabel
GO
--回滾之前檢查TruncateTable
SELECT * FROM TruncateTabel
GO
F5執(zhí)行,如圖:

執(zhí)行回滾事務(wù)
ROLLBACK TRAN
GO
再次檢查表TruncateTable
SELECT * FROM TruncateTabel
GO
F5執(zhí)行,如圖:

總結(jié)一下,事務(wù)是可以對TRUNCATE操作進行回滾的。
相關(guān)文章
sql里將重復(fù)行數(shù)據(jù)合并為一行數(shù)據(jù)使用逗號進行分隔
sql里將重復(fù)行數(shù)據(jù)合并為一行,將多行fieldname字段的內(nèi)容串聯(lián)起來,用逗號分隔,接下來為大家介紹下詳細的實現(xiàn)sql語句,希望對你有所幫助2013-04-04
SQL Server 2005刪除日志文件的幾種方法小結(jié)
SQL Server數(shù)據(jù)庫都有l(wèi)og文件,log文件記錄用戶對數(shù)據(jù)庫修改的操作??梢酝ㄟ^直接刪除log文件和清空日志在清除數(shù)據(jù)庫日志2013-07-07
sql2008 附加數(shù)據(jù)庫時出現(xiàn)錯誤5123提示的解決方法
今天重裝了一下家里電腦的數(shù)據(jù)庫,在附加己有數(shù)據(jù)庫時,出現(xiàn)5123錯誤2011-11-11
無法在com+ 目錄中安裝和配置程序集 錯誤:-2146233087的解決方法[已測]
最近從腳本之家下載sql2005的部分朋友反應(yīng)無法安裝sql2005,今天在安裝SQL Server2005時碰到了這個錯誤,到網(wǎng)上搜了一下,找到了解決辦法,特記在這里,以備以后需要。2012-10-10
利用SQL SERVER 2005數(shù)據(jù)庫鏡像實現(xiàn)可用性分析
SQL SERVER2005中首次提出了數(shù)據(jù)庫鏡像概念,基于軟件的高可用性解決方案 那是完全基于軟件的高可用性解決方案。不需要增加硬件成本,也就是低硬件成本快速的故障轉(zhuǎn)移恢復(fù)2014-08-08
SqlServer 2005/2008數(shù)據(jù)庫被標(biāo)記為“可疑”的解決辦法
當(dāng)數(shù)據(jù)庫發(fā)生這種操作故障時,可以按如下操作步驟可解決此方法,打開數(shù)據(jù)庫里的Sql 查詢編輯器窗口,運行以下的命令。2010-05-05
SQL2005 provider: 命名管道提供程序 error: 40 無法打開到 SQL Server 的連接
這篇文章主要介紹了SQL2005 provider: 命名管道提供程序 error: 40 無法打開到 SQL Server 的連接,需要的朋友可以參考下2015-01-01

