我们有一堆带有遗留样式错误捕获的旧存储过程。前几天我更改了一个,并包含了一个更新的 TRY...CATCH 块。存储过程刚刚在 TRY/CATCH 之后停止并返回,就好像遗留块中存在错误一样。
如果我放一个
SELECT NULL
在两者之间一切正常。有谁知道为什么会这样?
--BEGIN NEW ERROR TRAP--
BEGIN TRY
Do stuff...
END TRY
BEGIN CATCH
END CATCH
--END NEW ERROR TRAP---
----------------- OLD SCHOOL TRAP BEGIN -----------------
SELECT @spERROR = @@ERROR ,
@spROWCOUNT = @@ROWCOUNT
SET @spRETURN = @spRETURN + 1
IF ( @spROWCOUNT <= 0
OR @spERROR <> 0
)
SET @spRETURN = 0 - @spRETURN
IF ( @spROWCOUNT <= 0
OR @spERROR <> 0
)
RETURN @spRETURN
SELECT @spROWCOUNT = -1 ,
@spERROR = -1
------------------ OLD SCHOOL ERROR TRAP END ------------------