HOME >> Tips >> Microsoft SQL Server

T-SQL で例外処理を実装する

2015/4/7
文書番号:20326

SQL Server の T-SQL ステートメント内で TRY ~ CATCH による例外処理を行う方法です。

BEGIN TRY ~ END TRY までの間に記載した処理の中で例外エラーが発生すると BEGIN CATCH ~ END CATCH で捕捉されます。

BEGIN CATCH ~ END CATCH では発生したエラー番号とエラーメッセージを「ERROR_NUMBER()」と「ERROR_MESSAGE()」の関数で取得することができます。

以下の例では商品マスタへの更新処理でエラーが発生した場合にその内容をエラーログテーブルへ更新するようにしています。

  BEGIN TRY

    -- 商品マスタへ商品を更新する
	INSERT INTO 商品マスタ (
	     商品コード
	    ,商品名
	) VALUES (
	     @SHOHIN_CD
	    ,@SHOHIN_NM
	)
  END TRY
  
  BEGIN CATCH
  
    --エラーログを更新
    INSERT INTO エラーログ
    VALUES (
        GETDATE(),ERROR_NUMBER(), ERROR_MESSAGE()
    )
     
  END CATCH

【参考情報】

[SQL Server]Transact-SQL での TRY...CATCH の使用
https://technet.microsoft.com/ja-jp/library/ms179296(v=sql.105).aspx