当前位置:  开发笔记 > 数据库 > 正文

SQL Server UNDO

如何解决《SQLServerUNDO》经验,为你挑选了2个好方法。

我是一名兼职开发人员(全职学生)和我正在工作的公司使用SQL Server 2005.我发现SQL Server的一个奇怪的事情是,如果你做一个涉及插入,更新等的脚本,那就没有任何真正的方法除了回滚或使用事务之外,撤消它.

您可能会说这两个选项出了什么问题?好吧,例如,如果有人做了更新语句并忘记放入一个WHERE子句,你突然发现自己更新了13k行,并且该表中的所有客户端突然被命名为'bob'.现在你有13k bobs的愤怒,因为"某人"忘记使用交易,如果你做回滚,你将撤消其他领域所需的关键变化.

在我的学习中,我有Oracle.在Oracle中,您可以先运行脚本,然后在发现没有任何错误时提交它.我想知道在SQL Server中是否有一些我错过的东西,因为我在开发人员世界中仍然相对较新.



1> Steven Behnk..:

我不相信你错过了什么.使用事务来防止这些错误是最好的机制,它与Oracle用于保护最终用户的机制相同.不同之处在于Oracle隐式为您开始一个事务,而在SQL Server中您必须明确地执行它.



2> shahkalpesh..:

SET IMPLICIT_TRANSACTIONS是您可能正在寻找的.

推荐阅读
跟我搞对象吧
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有