SQL Server 执行脚本语句后撤销回滚

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

 

posted @ 2022-03-23 21:22  emanlee  阅读(3235)  评论(0编辑  收藏  举报