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 文 (P ~ Z)

 

SET 文 [T-SQL]

この文は、Adaptive Server Enterprise と互換性を持つ方法で現在の接続にデータベース・オプションを設定するために使用します。

構文
SET option-name option-value
備考

使用可能なオプションは以下のとおりです。

オプション名 オプション値
ansinull On または Off
ansi_permissions On または Off
close_on_endtrans On または Off
datefirst

1、2、3、4、5、6、または 7

このオプションの設定は、DATEPART 関数で weekday 値を取得するときに影響を与えます。

週の最初の日を指定する方法の詳細については、first_day_of_week オプション [データベース]DATEPART 関数 [日付と時刻]を参照してください。

quoted_identifier On または Off
rowcount integer
self_recursion On または Off
string_rtruncation On または Off
textsize integer
トランザクションの独立性レベル 0、1、2、3、snapshot、statement snapshot、または read only statement snapshot

SQL Anywhere のデータベース・オプションは、SET OPTION 文を使用して設定されます。ただし、互換性を確保するため、便利なオプションについては SQL Anywhere でも Adaptive Server Enterprise の SET 文がサポートされています。

次のオプションは、SQL Anywhere と Adaptive Server Enterprise で Transact-SQL SET 文を使用して設定できます。

  • SET ansinull { On | Off }   SQL Anywhere と Adaptive Server Enterprise では、値を NULL と比較するデフォルトの動作が異なります。ansinull を Off に設定する場合、NULL との比較に対して Transact-SQL との互換性が提供されます。

    SQL Anywhere では、次の構文もサポートされています。

    SET ansi_nulls { On | Off }

    詳細については、ansinull オプション [互換性]を参照してください。

  • SET ansi_permissions { On | Off }   カラム参照を含む UPDATE または DELETE を実行するのに必要なパーミッションに関する、SQL Anywhere と Adaptive Server Enterprise のデフォルト動作は異なります。ansi_permissions を Off に設定すると、UPDATE と DELETE のパーミッションに関して Transact-SQL との互換性が提供されます。ansi_permissions オプション [互換性]を参照してください。

  • SET close_on_endtrans { On | Off }   トランザクションの終わりでカーソルを閉じるデフォルト動作は、SQL Anywhere と Adaptive Server Enterprise で異なります。close_on_endtrans を Off に設定すると、Transact-SQL との互換性が提供されます。close_on_endtrans オプション [互換性]を参照してください。

  • SET datefirst { 1 | 2 | 3 | 4 | 5 | 6 | 7 }   デフォルトは 7 です。これは、週の開始日が日曜日であることを意味します。このオプションを永続的に設定する方法については、first_day_of_week オプション [データベース]を参照してください。

  • SET quoted_identifier { On | Off }   二重引用符で囲まれた文字列を識別子 (On) として解釈するか、単なる文字列 (Off) として解釈するかを制御します。Transact-SQL との互換性を維持するためのオプション設定quoted_identifier オプション [互換性]を参照してください。

  • SET rowcount   integer Transact-SQL の ROWCOUNT オプションは、カーソルについてフェッチするローの数の上限を指定の整数に設定します。カーソルを再位置付けしてフェッチしたローにも適用されます。この上限を超えたフェッチには警告が発せられます。このオプション設定は OPEN の要求が出て、カーソルがフェッチするロー数の推測値が返されるときに考慮されます。

    また、SET ROWCOUNT では、検索する UPDATE 文または DELETE 文の対象となるローの数を integer に制限します。たとえば、この機能を使用すると、一定の間隔で COMMIT 文を実行し、ロールバック・ログとロック・テーブルのサイズを制限することができます。アプリケーション (またはプロシージャ) は、最初の操作が影響するローに更新/削除を再発行させるループを指定する必要があります。次に簡単な例を示します。

    BEGIN
       DECLARE @count INTEGER
       SET rowcount 20
       WHILE(1=1) BEGIN
          UPDATE Employees SET Surname='new_name'
          WHERE Surname <> 'old_name'
          /* Stop when no rows changed */
          SELECT @count = @@rowcount
          IF @count = 0 BREAK
          PRINT string('Updated ',
                   @count,' rows; repeating...')
          COMMIT
       END
       SET rowcount 0
    END

    SQL Anywhere では、ROWCOUNT 設定が Interactive SQL が表示できるローの数より大きい場合、Interactive SQL は追加のフェッチを行ってカーソルを再配置することができます。そのため、実際に表示されるローの数は、要求した数より少なくなることがあります。また、切り捨ての警告のために、ローが再度フェッチされる場合、カウントは正しくない場合があります。

    値を 0 にすると、オプションをリセットし、すべてのローを取得します。

  • SET self_recursion { On | Off }   self_recursion オプションをトリガ内で使用して、そのトリガに関連するテーブルの操作が他のトリガを起動できるか (On) できないか (Off) を設定します。

  • SET string_rtruncation { On | Off }   SQL 文字列データ代入時にスペース以外の文字がトランケートされるときのデフォルト動作は、Adaptive Server Anywhere と Adaptive Server Enterprise では異なります。string_rtruncation を On に設定すると、文字列の比較に関して、Transact-SQL との互換性が提供されます。string_rtruncation オプション [互換性]を参照してください。

  • SET textsize   select 文で返される text 型データまたは image 型データの最大サイズをバイト単位で指定します。@@textsize グローバル変数は、現在の設定を格納します。デフォルト・サイズ (32 KB) にリセットするには、次のコマンドを使用します。
    set textsize 0

  • SET transaction isolation level { 0 | 1 | 2 | 3 | snapshot | statement snapshot | read only statement snapshot }   独立性レベルと一貫性で説明されている、現在の接続のロック独立性レベルを設定します。Adaptive Server Enterprise では、1 と 3 だけが有効なオプションです。SQL Anywhere の場合、0、1、2、3、snapshot、statement snapshot、read only statement snapshot が有効なオプションです。isolation_level オプション [データベース] [互換性]を参照してください。

SET 文は、Adaptive Server Anywhere において互換性のために prefetch オプションで使用できますが、効力はありません。

パーミッション

なし

関連する動作

なし

参照
標準と互換性
  • SQL/2003   Transact-SQL 拡張。