0

私は次のエラーに直面しています-

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ただし、このエラーではグローバル変数が設定されないことがわかりました。そのため、このエラーをキャッチする別の方法を知っている人はいますか?

4

3 に答える 3

0

このソリューションを試してください:

I.エラーを生成するコードを使用してプロシージャを作成します。

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

II。手順Proc1を実行し、エラーをキャッチします。

exec Proc1

IF @@error <> 0
begin
    print 'ERROR!'    
end
于 2012-11-09T18:54:06.197 に答える
0

次の機能を使ってみましたか?

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

または、try / catchブロックを使用できます:

BEGIN TRY
...
END TRY
BEGIN CATCH
...
END CATCH
于 2012-11-09T14:53:05.447 に答える
0

@@ERRORどうやら、グローバル変数を使用して指定されたエラーをキャッチする方法はありません。

于 2012-11-13T19:48:36.697 に答える