假设我有一个管理自己的事务的存储过程
CREATE PROCEDURE theProc
AS
BEGIN
BEGIN TRANSACTION
-- do some stuff
IF @ThereIsAProblem
ROLLBACK TRANSACTION
ELSE
COMMIT TRANSACTION
END
如果我从现有事务中调用此 proc,则 proc 可以回滚外部事务。
BEGIN TRANSACTION
EXEC theProc
COMMIT TRANSACTION
如何在存储过程中正确确定事务的范围,以便存储过程不回滚外部事务?