SQL Server 執行后撤銷
事務 Begin transaction,且執行了Update后還未commit transaction,可以用rollback transaction來回滾和撤銷
=========================
先啟動一個事務
BEGIN TRANSACTION --啟動一個事務
UPDATE TABLENAME SET XXXXX WHERE XXXX
SELECT * FROM TABLENAME --查看結果
--如果發現有問題就執行這個語句:
ROLLBACK TRANSACTION
--沒問題就迅速執行這個語句:
COMMIT TRANSACTION
這些都要先寫好了,執行完成后要迅速執行事務提交或回滾語句,以免啟動事務影響其它人對更改過的表的訪問。
=========================
SQL Server服務器,一直處於所謂的自動提交模式,而且這種模式是默認的。
由於操作數據庫批量修改數據出錯的話,修復數據是相當的痛苦,如果沒有備份的情況下,那有可能就是滅頂之災了。
---該命令關閉SQL Server的自動提交模式
SET IMPLICIT_TRANSACTIONS ON
---開始一個事務,該命令可要可不要。(默認是開始一個事務)
Begin TRANSACTION;
---查詢表中數據
select * from SysBpmIProc where TaskId = 245692;
--對數據進行修改
update SysBpmIProc set FlowCatName = '其他部門' where TaskId = 245692;
--修改的數據准確無誤的話就提交事務
Commit TRANSACTION
--修改的數據有毛病的話就進行回滾
Rollback TRANSACTION
---打開SQL Server的自動提交模式
SET IMPLICIT_TRANSACTIONS OFF
個人認為在SQL Server上批量修改數據時建一個事務,如果操作不當可以回滾。
如果平常修改單行數據沒必要關閉自動提交模式,只要做好備份,即使出錯也可以很容易的修改過來。
=========================
REF
https://blog.csdn.net/weixin_42305304/article/details/80444858
http://blog.sina.com.cn/s/blog_46c5441f01015h9r.html