@@ ERROR未在Sybase ASE中设置以下错误

时间:2012-11-09 14:49:45

标签: tsql sybase-ase

我遇到以下错误 -

Number (213) Severity (16) State (5) Server (ASED052) Insert error: column name or number of supplied values does not match table definition.

我试图用 -

来抓住它
IF @@ERROR != 0
BEGIN
-- Do stuff
END

但是,我发现此错误未设置全局@@ERROR变量。在这种情况下,是否有人知道另一种方法来捕获此错误?

3 个答案:

答案 0 :(得分:0)

您是否尝试过使用以下功能?

ERROR_LINE()
ERROR_MESSAGE()
ERROR_NUMBER()
ERROR_PROCEDURE()
ERROR_SEVERITY()
ERROR_STATE()

或者您可以使用try / catch块:

BEGIN TRY
...
END TRY
BEGIN CATCH
...
END CATCH

答案 1 :(得分:0)

试试这个解决方案:

予。使用生成错误的代码创建过程。

create procedure Proc1
as
begin
  insert into tab(Fake_Column) 
  values ('aaa')
end

II。运行过程Proc1并捕获错误:

exec Proc1

IF @@error <> 0
begin
    print 'ERROR!'    
end

答案 2 :(得分:0)

显然,无法使用全局@@ERROR变量来捕获指定的错误。