如果更新不成功如何回滚?
我写了一个事务,例如:
BEGIN TRAN
UPDATE [Table1]
SET [Name] = 'abcd'
WHERE [ID] = 1
UPDATE [Table2]
SET [Product] = 'efgh'
WHERE [ID] = 10
UPDATE [Table3]
SET [Customar] = 'ijkl'
WHERE [ID] = 11
现在我想在任何更新不成功时回滚。例如,在表 2 中,如果没有 ID=10 的产品,则应回滚事务。如何执行此操作?请注意,我使用的是 SQLServer 2000。
I have written a transaction like:
BEGIN TRAN
UPDATE [Table1]
SET [Name] = 'abcd'
WHERE [ID] = 1
UPDATE [Table2]
SET [Product] = 'efgh'
WHERE [ID] = 10
UPDATE [Table3]
SET [Customar] = 'ijkl'
WHERE [ID] = 11
Now I want to rollback if any UPDATE is not success. For example in Table2 if there is no Product with ID=10 the transaction should be rolled back. How to do this?Please note that I am using SQLServer 2000.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
SQL Server 2000。如果使用 SET XACT_ABORT ON,则不需要回滚
SQL Server 2000. You don't need rollback if you use SET XACT_ABORT ON
在每个 UPDATE 语句之前,您需要执行 BEGIN TRAN,在每个 UPDATE 语句之后,您需要执行此操作 -
Before each UPDATE statement you need to do BEGIN TRAN and after each of your UPDATE statement, you need to do this -