我遇到以下错误 -
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
变量。在这种情况下,是否有人知道另一种方法来捕获此错误?
答案 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
变量来捕获指定的错误。