Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SAP Sybase SQL Anywhere 16.0 » SQL Anywhere サーバ SQL の使用法 » SQL のダイアレクトと互換性 » Transact-SQL プロシージャでのエラー処理

 

RAISERROR 文を使用するプロシージャ

RAISERROR 文を使用してユーザ定義エラーを作成します。RAISERROR 文は、SIGNAL 文と同じように機能します。

RAISERROR 文そのものは、プロシージャを終了しません。ただし、ユーザ定義エラー後の実行を制御するために、RETURN 文やグローバル変数 @@error のテストと組み合わせることができます。

on_tsql_error データベースオプションを Continue に設定すると、RAISERROR 文は実行終了時にエラーを通知しません。代わりに、プロシージャが完了し、RAISERROR のステータスコードとメッセージを保存してから、最新の RAISERROR を返します。RAISERROR を返したプロシージャが他のプロシージャから呼び出された場合、最も外側のプロシージャが終了してから RAISERROR が返されます。on_tsql_error オプションをデフォルト値 (Conditional) に設定した場合、continue_after_raiserror オプションは、RAISERROR 文の実行後の動作を制御します。on_tsql_error オプションを Stop または Continue に設定した場合、その設定は continue_after_raiserror の設定より優先されます。

中間レベルの RAISERROR ステータスとコードは、プロシージャが終了すると失われます。結果が返されるときに RAISERROR とともにエラーが発生した場合は、エラー情報が返され、RAISERROR 情報は失われます。アプリケーションでは、別の実行ポイントでグローバル変数 @@error を検査して、中間の RAISERROR ステータスを問い合わせることができます。

 参照