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

SQL Anywhere 11.0.1 (日本語) » SQL Anywhere サーバ - SQL の使用法 » SQL のダイアレクトと互換性 » SQL ダイアレクト » 互換性のある SQL 文の記述方法

 

移植可能な SQL を記述するための一般的なガイドライン

複数のデータベース管理システムで使用するために SQL を記述する場合は、SQL 文をできるかぎり明示的にします。指定した SQL 文を複数のサーバがサポートしている場合でも、デフォルトの動作が各システムで同じであると仮定するのは間違っていることもあります。

SQL Anywhere では、データベース・サーバと SQL プリプロセッサ (sqlpp) で、ベンダ拡張であるか、特定の ISO/ANSI SQL 標準に準拠しないか、Ultra Light でサポートされていない SQL 文を特定できます。この機能は SQL FLAGGER と呼ばれます。SQL FLAGGER を使用した SQL 準拠のテストを参照してください。

次に、互換性のある SQL を記述するときの一般的なガイドラインを示します。

  • デフォルトの動作を使用せずに、使用可能なオプションをすべて含めます。

  • 演算子の優先順位のデフォルトが同じであるとするのではなく、文中の実行の順序をカッコを使用して明確にします。

  • Adaptive Server Enterprise に移植できるように、変数名には @ をプレフィクスとして付ける Transact-SQL の規則に従います。

  • プロシージャ、トリガ、バッチでは、BEGIN 文の直後で変数とカーソルを宣言します。Adaptive Server Enterprise では、プロシージャ、トリガ、バッチ内のどこででも宣言できますが、SQL Anywhere では、BEGIN 文の直後で行う必要があります。

  • データベース内の識別子として、Adaptive Server Enterprise または SQL Anywhere の予約語を使用しないでください。

  • 大きいネームスペースを想定します。たとえば、各インデックスにはユニークな名前を持たせるようにします。