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

SQL Anywhere 12.0.1 » 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 ステータスを問い合わせることができます。

 参照