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 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
https://technet.microsoft.com/ja-jp/library/ms179296(v=sql.105).aspx