① sql 回滾語句
這種情況的數據恢復只能利用事務日誌的備份來進行,所以如果你的SQL沒有進行相應的全庫備份
或不能備份日誌(truncate log on checkpoint選項為1),那麼就無法進行數據的恢復了,或者
只能恢復到最近一次的備份的數據了。
以下簡單說明恢復數據方法:
1,如果誤操作之前存在一個全庫備份(或已有多個差異備份或增量備份),首先要做的事就是進
進行一次日誌備份(如果為了不讓日誌文件變大而置trunc. log on chkpt.選項為1那你就死翹了)
backup log dbName to disk='fileName'
2,恢復一個全庫備份,注意需要使用with norecovery,如果還有其他差異或增量備份,則逐個恢
復
restore database dbName from disk='fileName' with norecovery
3,恢復最後一個日誌備份即剛做的日誌備份,指定恢復時間點到誤操作之前的時刻
restore log dbName from disk='fileName'
with stopat='date_time'
以上這些操作都可以在SQL SERVER企業管理器里完成,難度不大。。。
當然,如果誤操作是一些不記日誌的操作比如truncate table,select into等操作,那麼是無法利
用上述方法來恢復數據的...
② 對於已經執行成功的sql命令,如何回滾
mysql命令行下怎樣實現數據的回滾操作
在MySQL有時執行了錯誤的update或者delete時導致大量數據錯誤恢復的辦法。執行時沒有開啟事務,也沒有對數據進行。這時就需要使用到sqlbinlog工具。
sqlbinlog需要開啟,具體的打開方法就不說了。
使用sqlbinlog會產生bin文件,恢復就需要用到這些文件。文件中記錄著資料庫的所有操作。(此方法的操作是將資料庫之前所執行的語句重新執行一次,以達到恢復效果)
具體步驟:1,先找到bin文件,一般都是在mysql的data文件夾中,結尾以.00000X等形式結束。
2,尋找需要還原的時間點 使用語句 mysqlbinlog 文件名 例(MySQLbinlog xxbin.000001)來查看內容,然後找到對應的具體時間
3,導出sql語句,使用語句 mysqlbinlog 文件名>sql文件路徑 例(mysqlbinlog xxxbin,00001>>a.sql | mysql -u root -p )
如果需要指定時間導出--start--date -stop='' --date='' 來導出指定時間執行的語句例(sqlbinlog --start-stop='2015-11-22 10:00:00' xxbin.000001>a.sql | mysql -u root -p )這句意思是導出在2015-11-22 10點之前的語句,反之start是導出時間之後的。 start和stop可以同時使用。
如果存在多個bin文件,則按照需要導出。
4,使用mysql將導出的語句執行一次。
③ SQL資料庫,能進行回滾操作么
你在執行update操作的時候,有沒有進行提交操作,如果rollback還原不了數據的話,你可以查看日誌文件,查找到你當時的執行的語句,進行還原就行
④ sql server 中的update語句回滾怎麼寫啊
回滾要來放在事務裡面進行,才能源進行回滾;sql裡面的事務使用關鍵字TransAction
1:可以用try catch捕獲
begin try
begin tran
update table set a=1;
commit tran
end Try
begin catch
rollback tran
end catch
2:可以使用error 全局變數
begin tran
update tablename set ad=1111
if @@error<>0 begin rollback end
commit tran
注意:如果一個事務寫了 begin trans ,後面一定要跟上 commit tran或 rollback transaction ,否則可能導致被鎖
⑤ 如何實現SQL執行的回滾
事務提交語句
COMMIT;
事務回退語句
ROLLBACK;
⑥ mysql 可以對執行成功的SQL語句進行回滾嗎
mysql命令行下怎樣實現數據的回滾操作
在MySQL有時執行了錯誤的update或者delete時導致大量數據錯誤恢復的辦法。執行時沒有開啟事務,也沒有對數據進行。這時就需要使用到sqlbinlog工具。
sqlbinlog需要開啟,具體的打開方法就不說了。
使用sqlbinlog會產生bin文件,恢復就需要用到這些文件。文件中記錄著資料庫的所有操作。(此方法的操作是將資料庫之前所執行的語句重新執行一次,以達到恢復效果)
具體步驟:1,先找到bin文件,一般都是在mysql的data文件夾中,結尾以.00000X等形式結束。
2,尋找需要還原的時間點 使用語句 mysqlbinlog 文件名 例(MySQLbinlog xxbin.000001)來查看內容,然後找到對應的具體時間
3,導出sql語句,使用語句 mysqlbinlog 文件名>sql文件路徑 例(mysqlbinlog xxxbin,00001>>a.sql | mysql -u root -p )
如果需要指定時間導出--start--date -stop='' --date='' 來導出指定時間執行的語句例(sqlbinlog --start-stop='2015-11-22 10:00:00' xxbin.000001>a.sql | mysql -u root -p )這句意思是導出在2015-11-22 10點之前的語句,反之start是導出時間之後的。 start和stop可以同時使用。
如果存在多個bin文件,則按照需要導出。
4,使用mysql將導出的語句執行一次。
⑦ SQL語言中,用於事務回滾的語句是什麼
回滾要放抄在事務裡面進行,才能進行回滾;sql裡面的事務使用關鍵字TransAction
1:可以用try catch捕獲
begin try
begin tran
update table set a=1;
commit tran
end Try
begin catch
rollback tran
end catch
2:可以使用error 全局變數
begin tran
update tablename set ad=1111
if @@error<>0 begin rollback end
commit tran
注意:如果一個事務寫了 begin trans ,後面一定要跟上 commit tran或 rollback transaction ,否則可能導致被鎖
⑧ sql語句中用什麼語句實現事務的回滾
-開啟事務 begin tran --執行操作 update Accounts_UsersExp set TelPhone=123456 where userid=14 --執行錯誤事務回滾 rollback --如果正內確進行事容務提交 commit
⑨ SQL語句如何rollback
rollback是針對事務的,你如果沒有在執行語句之前開啟事務,那麼無法rollback,建議你還是想別的辦法吧,事務語句如下(sqlserver的給你借鑒):
--開啟事務
begin tran
--執行操作
update Accounts_UsersExp set TelPhone=123456 where userid=14
--執行錯誤事務回滾
rollback
--如果正確進行事務提交
commit
可以勾選一句執行一句,但是commit了就不能rollback
⑩ SQL語言中,用於事務回開始的語句是什麼
--開啟事務
begin tran
--執行操作
update Accounts_UsersExp set TelPhone=123456 where userid=14
--執行錯誤事務回滾
rollback
--如果正確進行事務提交
commit