複数のデータベース管理システムで使用するために SQL を記述する場合は、SQL 文をできるかぎり明示的にします。指定した SQL 文を複数のサーバがサポートしている場合でも、デフォルトの動作が各システムで同じであると仮定するのは間違っていることもあります。
SQL Anywhere では、データベースサーバと SQL プリプロセッサ (sqlpp) で、ベンダー拡張であるか、特定の ISO/ANSI SQL 標準に準拠しないか、Ultra Light でサポートされていない SQL 文を特定できます。この機能は SQL Flagger と呼ばれます。
次に、互換性のある SQL を記述するときの一般的なガイドラインを示します。
デフォルトの動作を使用せずに、使用可能なオプションをすべて含めます。
演算子の優先順位のデフォルトが同じであるとするのではなく、文中の実行の順序をカッコを使用して明確にします。
Adaptive Server Enterprise に移植できるように、変数名には @ をプレフィクスとして付ける Transact-SQL の規則に従います。
プロシージャ、トリガ、バッチでは、BEGIN 文の直後で変数とカーソルを宣言します。Adaptive Server Enterprise では、プロシージャ、トリガ、バッチ内のどこででも宣言できますが、SQL Anywhere では、BEGIN 文の直後で行う必要があります。
データベース内の識別子として、Adaptive Server Enterprise または SQL Anywhere の予約語を使用しないでください。
大きいネームスペースを想定します。たとえば、各インデックスにはユニークな名前を持たせるようにします。
![]() |
DocCommentXchange で意見交換できます
|
Copyright © 2013, SAP AG or an SAP affiliate company. - SAP Sybase SQL Anywhere 16.0 |