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 12 変更点とアップグレード » バージョン 12.0.0 の新機能 » SQL Anywhere の新機能

 

SQL 文

次に、SQL Anywhere バージョン 12.0.0 での SQL の強化を示します。

  • 名前付きインデックスヒントの修飾の改善   1 つのテーブルの PRIMARY KEY インデックスと FOREIGN KEY インデックスは名前が同じである場合があります。このことが当てはまる場合は、名前付きインデックスヒントを明確に指定できません。名前付きインデックスヒントの指定が拡張され、ヒントが指定されたインデックスを PRIMARY KEY インデックスまたは FOREIGN KEY インデックスとして修飾できるようになりました。INDEX 句、FROM 句を参照してください。

  • 新しい IS DISTINCT FROM および IS NOT DISTINCT FROM 探索条件   IS DISTINCT FROM および IS NOT DISTINCT FROM 探索条件を使用すると、NULL の場合の等価性の評価を制御できます。IS DISTINCT FROM および IS NOT DISTINCT FROM 探索条件を参照してください。

  • CREATE SYNCHRONIZATION PROFILE 文   この文は、SQL Anywhere の同期プロファイルを作成します。同期プロファイルによって、SQL Anywhere データベースが Mobile Link サーバーと同期する方法を定義します。CREATE SYNCHRONIZATION PROFILE 文 [Mobile Link]を参照してください。

  • 新しい CREATE INDEX 文の WITH NULL NOT DISTINCT 句   CREATE INDEX 文に、UNIQUE インデックスの作成時に使用する新しい句 WITH NULLS NOT DISTINCT が追加されました。この句を使用すると、インデックスキー内の NULL がユニークでないことを指定できます。この機能を使用するには、既存のデータベースをアップグレードまたは再構築する必要があります。CREATE INDEX 文の UNIQUE 句の説明を参照してください。

  • 逆引用符識別子デリミター   逆引用符を識別子デリミターとして使用できるようになりました。識別子を参照してください。

  • ALTER TEXT CONFIGURATION 文の新しい SAVE OPTION VALUES   この新しい句を使用して、テキスト設定オブジェクトに保存された date_format、time_format、timestamp_format、timestamp_with_time_zone_format オプションの値を変更します。ALTER TEXT CONFIGURATION 文を参照してください。

  • ALTER SERVER 文と CREATE SERVER 文   新しい IQODBC サーバークラスと IQJDBC サーバークラスを使用すると、Sybase IQ サーバーをリモート接続として指定できます。ALTER SERVER 文CREATE SERVER 文を参照してください。

  • 新しい LOCK FEATURE 文   この文は、他の同時接続でデータベースサーバーの機能が使用されないようにします。LOCK FEATURE 文を参照してください。

  • BEGIN、CREATE VARIABLE、DECLARE 文の強化   変数宣言に変数の初期開始値を含めることができるようになりました。次の項を参照してください。

  • LOAD TABLE 文の強化   LOAD TABLE 文で load-option 句がサポートされるようになりました。この句を使用すると、データのロード方法を制御できます。また、FORMAT 句の値 XML もサポートされます。LOAD TABLE 文を参照してください。

  • 新しい IF NOT EXISTS 句   新しい IF NOT EXISTS 句を指定し、指定したオブジェクトがすでに存在する場合、変更は行われず、エラーは返されません。次の項を参照してください。

  • 新しい IF EXISTS 句   新しい IF EXISTS 句により、存在しないデータベースオブジェクトの削除を DROP 文で試みてもエラーを返さないように指定できます。次の項を参照してください。

  • CASE 文の強化   Transact-SQL のプロシージャーとバッチで CASE 文がサポートされるようになりました。

  • 新しい OR REPLACE 句   新しい OR REPLACE 句を使用すると、プロファイルまたは変数を作成したり、同じ名前のオブジェクトが存在する場合は、置換したりできます。次の項を参照してください。

  • SELECT 文の新しい LIMIT 句のサポート   SELECT 文で新しい LIMIT 句を使用してローカウントとオフセットを指定できるようになりました。 SELECT 文を参照してください。

  • SET OPTION 文の強化   SET OPTION 文の構文 1 で、変数の内容を使用したオプションの設定がサポートされるようになりました。SET OPTION 文を参照してください。

  • 新しい IF [ NOT] OF 探索条件   IF [NOT] OF type-expression 探索条件が追加されました。探索条件空間データ型構文の理解を参照してください。

  • INSERT 文の強化   INSERT 文には、次のような強化が行われています。INSERT 文を参照してください。

    • 複数の値のリストのサポート   INSERT 文に複数の値のリストを含めることが可能になったことによって、一度に複数のローを挿入できるようになりました。次に例を示します。
      INSERT INTO T (c1,c2,c3)
      VALUES (1,10,100), (2,20,200), (3,30,300);

    • すべてのデフォルト値を含むローの挿入のサポート   SQL Anywhere では、テーブル内のカラムのサブセットに対して指定された値を VALUES 句に含めることができます。指定されていないすべてのカラムには、CREATE TABLE 文の DEFAULT 句、NULL 句、COMPUTE 句によってカラムごとに指定されたデフォルト値が適用されます。以前のバージョンでは、データベースサーバーには、テーブル内の少なくとも 1 つのカラムの入力値を指定する必要がありました。

      今回のバージョンでは、次のいずれかの構文拡張によって、すべてのカラムにデフォルトが適用されるようになりました。

      INSERT [ INTO ] table-name options DEFAULT VALUES ...
      INSERT [ INTO ] table-name ( ) options VALUES ( ) [ , ( ) ... ]

      DEFAULT VALUES または VALUES を指定することは、セマンティック上、次の構文を使用することと同じです。デフォルトエントリの数は、テーブル内のカラムの数と同じになります。

      INSERT [ INTO ] table-name VALUES( default, default, ..., default )

      DEFAULT VALUES 句は SQL/2008 標準の一部ですが、VALUES 句はベンダー拡張です。

  • 新しい START SERVER 文   START SERVER 文が追加されました。この文は、廃止される START ENGINE 文の代わりに使用してください。START SERVER 文 [Interactive SQL]を参照してください。

  • 新しい STOP SERVER 文   STOP SERVER 文が追加されました。この文は、廃止される STOP ENGINE 文の代わりに使用してください。STOP SERVER 文を参照してください。

  • ALTER DATABASE 文の新しい CHECKSUM 句   CHECKSUM OFF 句を使用すると、データベースのグローバルチェックサムを無効にすることができます。新しいバージョン 12 のデータベースでは、デフォルトでグローバルチェックサムが有効になっています。ALTER DATABASE 文を参照してください。

  • DELETE 文の強化   DELETE 文で相関名がサポートされるようになりました。DELETE 文を参照してください。