【发布时间】:2023-03-16 22:34:01
【问题描述】:
我想知道,是否有可能根据特定批次的状态应用条件事务回滚。例如,我有以下代码:
BEGIN TRAN
--EXEC No 1
EXEC [dbo].[MyProc] 1;
GO
--EXEC No 2
EXEC [dbo].[MyProc] 22;
GO
--EXEC No 3
EXEC [dbo].[MyProc] 333;
GO
--EXEC No 4
EXEC [dbo].[MyProc] 5;
GO
COMMIT
如果EXEC No 3 失败,我想回滚整个事务。如果任何其他执行失败,我希望 SQL Server 继续执行我的查询。有可能吗?
【问题讨论】:
-
“失败”是什么意思?
-
假设第 3 次更新涉及表,该表不存在。
标签: sql-server tsql transactions sql-server-2012 rollback