1

在 SQL Server 2008 R2 中,我有一个存储过程 X,它执行 2 个其他存储过程:

create procedure X
begin
   exec A
   exec B
end

存储过程 A 中有一个事务

SET TRANSACTION ISOLATION LEVEL REPEATABLE READ
begin transaction
  insert into .....
  set @ReadingID = (select SCOPE_IDENTITY())
commit transaction

如果存储过程 A 因死锁而失败,是在用户确认死锁消息后执行存储过程 B,还是中止存储过程 X?

我曾预计 X 会中止,但我的实时数据表明 B 可能在 A 失败后运行 - 或者至少这是对数据的一种解释 - 或者至少是用户对似乎发生的事情的描述。

4

0 回答 0