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 値を取得するときに影響を与えます。 |
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 SQL Anywhere と Adaptive Server Enterprise では、値を NULL と比較するデフォルトの動作が異なります。ansinull を Off に設定する場合、NULL との比較に対して Transact-SQL との互換性が提供されます。
SQL Anywhere では、次の構文もサポートされています。
SET ansi_nulls { On | Off }
SET ansi_permissions カラム参照を含む UPDATE または DELETE を実行するのに必要な権限に関する、SQL Anywhere と Adaptive Server Enterprise のデフォルト動作は異なります。ansi_permissions を Off に設定すると、UPDATE と DELETE の権限に関して Transact-SQL との互換性が提供されます。
SET close_on_endtrans トランザクションの終わりでカーソルを閉じるデフォルト動作は、SQL Anywhere と Adaptive Server Enterprise で異なります。close_on_endtrans を Off に設定すると、Transact-SQL との互換性が提供されます。
SET datefirst デフォルトは 7 です。これは、週の開始日が日曜日であることを意味します。
SET quoted_identifier 二重引用符で囲まれた文字列を識別子 (On) として解釈するか、単なる文字列 (Off) として解釈するかを制御します。
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 GROUPO.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 |
ROWCOUNT 設定が Interactive SQL が表示できるローの数より大きい場合、Interactive SQL は追加のフェッチを行ってカーソルを再配置することができます。そのため、実際に表示されるローの数は、要求した数より少なくなることがあります。また、切り捨ての警告のために、ローが再度フェッチされる場合、カウントは正しくない場合があります。
値を 0 にすると、オプションをリセットし、すべてのローを取得します。
SET self_recursion self_recursion オプションをトリガ内で使用して、そのトリガに関連するテーブルの操作が他のトリガを起動できるか (On) できないか (Off) を設定します。
SET string_rtruncation SQL 文字列データ代入時にスペース以外の文字がトランケートされるときのデフォルト動作は、Adaptive Server Anywhere と Adaptive Server Enterprise では異なります。string_rtruncation を On に設定すると、文字列の比較に関して、Transact-SQL との互換性が提供されます。
SET textsize SELECT 文で返される TEXT 型データまたは IMAGE 型データの最大サイズをバイト単位で指定します。@@textsize グローバル変数は、現在の設定を格納します。デフォルトサイズ (32 KB) にリセットするには、次のコマンドを使用します。
SET トランザクションの独立性レベル 現在の接続のロック独立性レベルを設定します。
Adaptive Server Enterprise では、1 と 3 だけが有効なオプションです。SQL Anywhere の場合、0、1、2、3、snapshot、statement snapshot、read only statement snapshot が有効なオプションです。
SET 文は、Adaptive Server Anywhere において互換性のために prefetch オプションで使用できますが、効力はありません。
なし
なし
SQL/2008 Transact-SQL 拡張。
![]() |
DocCommentXchange で意見交換できます
|
Copyright © 2013, SAP AG or an SAP affiliate company. - SAP Sybase SQL Anywhere 16.0 |