問題是這樣的,如果用delete from直接刪除某個(gè)數(shù)據(jù)庫(kù)表中的符合某個(gè)條件的數(shù)據(jù)的時(shí)候,SQL會(huì)將刪除的每條記錄的操作都寫入日志文件,這樣的話,就可以通過SQL以及恢復(fù)軟件可以將刪除的數(shù)據(jù)恢復(fù)到SQL數(shù)據(jù)庫(kù)中;而用truncate table刪除數(shù)據(jù)庫(kù)表數(shù)據(jù)的時(shí)候,雖然不寫入日志,不能恢復(fù)數(shù)據(jù),卻只能刪除整個(gè)表的數(shù)據(jù),而不能設(shè)定條件,這樣就不能刪除某部分?jǐn)?shù)據(jù)了。我的問題是這樣的:有不有辦法,能像truncate table那樣刪除數(shù)據(jù)的時(shí)候不寫日志,或者說就是刪除數(shù)據(jù)后不能恢復(fù),但是又能像delete from那樣能自己設(shè)定where條件,刪除符合某個(gè)條件的部分?jǐn)?shù)據(jù)。希望知道方法的朋友,給我一個(gè)好的方法,急需解決這個(gè)問題。如果先備份好LOG,再用delete from刪除,然后再還原LOG,但是我還原LOG時(shí)提示錯(cuò)誤:先前的還原操作未指定with norecovery或with standby。請(qǐng)?jiān)诔詈蟛襟E之外的所有其他步驟中指定with norecovery或with standby后,重新啟動(dòng)該還原序列。restore log 操作異常終止。
2 回答

莫回?zé)o
TA貢獻(xiàn)1865條經(jīng)驗(yàn) 獲得超7個(gè)贊
目前還沒有強(qiáng)制delete不記錄日志的方法,因?yàn)樵谠O(shè)計(jì)的時(shí)候SQL Server為了保障數(shù)據(jù)的安全性,引擎在設(shè)計(jì)上就會(huì)對(duì)Delete操作進(jìn)行日志記錄。為了減少日志的記錄,可以如下操作
Select * into Table2 From Table1 Where 條件表達(dá)式
Truncate table Table1
sp_rename 'Table2', 'Table1'
添加回答
舉報(bào)
0/150
提交
取消