プロシージャとトリガは、すべてのアプリケーションで使えるように SQL 文をデータベースに格納します。プロシージャとトリガは、SQL 文の繰り返し (LOOP 文) と条件付き実行 (IF 文と CASE 文) を含むことができます。バッチは、データベース・サーバにグループとして送られる SQL コマンドのセットです。制御文など、プロシージャとトリガで使用できる機能の多くは、バッチでも使用できます。
プロシージャは CALL 文で呼び出され、パラメータを使って値を受け取り、呼び出しを行った環境に結果の値を返します。SELECT 文の FROM 句にプロシージャ名を含めると、プロシージャの結果セットを操作できます。
プロシージャは、呼び出し元に結果セットを返し、他のプロシージャを呼び出すか、またはトリガを起動できます。たとえば、ユーザ定義関数はストアド・プロシージャの一種であり、呼び出しを行った環境に 1 つの値を返します。ユーザ定義関数は、渡されたパラメータを変更しないで、クエリや他の SQL 文に使用可能な関数のスコープを拡張します。
トリガは特定のデータベース・テーブルに関連付けられます。トリガは、関連するテーブルのローが挿入、更新、削除されるたびに自動的に起動します。トリガでプロシージャを呼び出したり、他のトリガを起動したりはできますが、トリガにパラメータを指定したり、CALL 文で呼び出したりはできません。
ストアド・プロシージャとトリガは、SQL Anywhere のデバッガを使用してデバッグできます。プロシージャ、関数、トリガ、イベントのデバッグを参照してください。
ストアド・プロシージャをプロファイリングして、Sybase Central でパフォーマンスを分析できます。システム・プロシージャを使用したプロシージャ・プロファイリングを参照してください。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |