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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。