基本コードシリーズになります。
ストアドがエラー無く登録されたとしても、パラメータ次第で論理エラーが発生する可能性は存在します。
当然、エラーのハンドリングが必要となります。
今回は例外処理をSQL(ストアドプロシージャ)内で実装するやり方を解説します。
やり方.
コードは非常にシンプルで、C#やJavaといった王道な言語と構造は同様です。
BEGIN TRY
~通常処理~
END TRY
BEGIN CATCH
~例外処理~
END CATCH
【通常処理】
エラーが発生する可能性があるコードを記述します。
エラーが発生した場合そこで処理は中断され、ブロック内のその後の処理は流れずに例外処理が実行されます。
【例外処理】
通常処理でエラーが発生したところで通常処理を中断し、例外処理が実行されます。
コード例.
いくつかの使用例を紹介します。
色々な場面で使用できるため、参考にしてみてください。
[BEGIN TRY]の前にトランザクションを開始し、例外処理でロールバックする
BEGIN TRANSACTION
BEGIN TRY
SET @BOX = CONVERT(int, @PARAMETER)
COMMIT TRANSACTION
END TRY
BEGIN CATCH
ROLLBACK TRANSACTION
END CATCH
通常処理でエラーが発生した際に、例外処理で失敗コードを結果変数にセットする
DECLARE @RESULT int
DECLARE @BOX int
BEGIN TRY
SET @BOX = CONVERT(int, @PARAMETER)
END TRY
BEGIN CATCH
SET @RESULT = -1
END CATCH
エラーが発生する可能性があるコードでエラーのハンドリングをする
DECLARE @BOX int
BEGIN TRY
SET @BOX = CONVERT(int, @PARAMETER)
END TRY
BEGIN CATCH
SET @BOX = 0
END CATCH