【发布时间】:2010-09-11 00:04:39
【问题描述】:
假设我有一个管理自己的事务的存储过程
CREATE PROCEDURE theProc
AS
BEGIN
BEGIN TRANSACTION
-- do some stuff
IF @ThereIsAProblem
ROLLBACK TRANSACTION
ELSE
COMMIT TRANSACTION
END
如果我从现有事务中调用此 proc,则 proc 可以 ROLLBACK 外部事务。
BEGIN TRANSACTION
EXEC theProc
COMMIT TRANSACTION
如何在存储过程中正确确定事务的范围,以使存储过程不回滚外部事务?
【问题讨论】:
-
观看this DNR-TV video,他们谈论了很多关于事务范围的内容,尽管在代码和 sql 中处理它。希望这会有所帮助。
标签: sql-server stored-procedures transactions scope