SQLServer2005(その2)
前回に引き続きSQLServer2005について。
- 例外処理
他の言語ではお馴染みの例外処理がTransact-SQL(ストアドプロシージャ)にも追加された。
TRYブロック内の処理で例外が発生した場合、CATCHブロックに制御が渡される。
そのため、今までは…
としていたものを、以下のように書き換えることが出来る。
BEGIN TRAN(SACTION)処理1
IF @@ERROR <> 0
BEGIN
ROLLBACK TRAN(SACTION)
例外処理
END処理2
IF @@ERROR <> 0
BEGIN
ROLLBACK TRAN(SACTION)
例外処理
ENDCOMMIT TRAN(SACTION)
また、CATCHブロック内では、以下のシステム関数を使用することが出来る。
BEGIN TRY
BEGIN TRAN(SACTION)処理1
処理2
COMMIT TRAN(SACTION)
END TRYBEGIN CATCH
ROLLBACK TRAN(SACTION)例外処理
END CATCH
・ERROR_NUMBER():原因となったエラーの番号を返す。
・ERROR_MESSAGE():エラーメッセージを返す。
例外処理の追加による恩恵は、敢えて説明する必要もないでしょう。