我们有一堆带有遗留样式错误捕获的旧存储过程。前几天我更改了一个,并包含了一个更新的 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 ------------------