我有存储过程A
,它更新了2个表,并在另一个数据库中执行第二个存储过程B
。所有代码都包含在事务中。但是,保存存储过程B
的数据库会一直锁定在未提交的事务中。为什么?
我认为代码是正确的。您是否还认为我应该考虑运行以下代码:
@Success
是存储过程B
BEGIN TRY
BEGIN TRANSACTION
Update tblTableA set varA = @ValueA
Update tblTableB set varB = @ValueB
EXEC Database2.schema.StoredprocB @ValueC, @Success
SELECT @Success
IF @Success = 1
ROLLBACK
ELSE
COMMIT
END TRY
BEGIN CATCH
ROLLBACK
SET @Success = 1
END CATCH