sp_serveroption (Transact-SQL)
リモート サーバーおよびリンク サーバーのサーバー オプションを設定します。
構文
sp_serveroption [@server = ] 'server'
,[@optname = ] 'option_name'
,[@optvalue = ] 'option_value' ;
引数
[ @server = ] 'server'
オプションを設定するサーバーの名前です。server のデータ型は sysname で、既定値はありません。[ @optname = ] 'option_name'
指定したサーバーに設定するオプションです。option_name のデータ型は varchar(35) で、既定値はありません。option_name は、次のいずれかの値をとります。値
説明
collation compatible
リンク サーバーに対する分散クエリの実行に影響を与えます。このオプションに true を設定した場合、SQL Server は、文字セットと照合順序 (並べ替え順) に関して、リンク サーバー内のすべての文字がローカル サーバーと互換性があると仮定します。これにより、SQL Server からプロバイダに文字を含む列の比較を送信できるようになります。このオプションが設定されていない場合、SQL Server では文字列を含む列の比較の評価は常にローカルで行われます。
このオプションは、リンク サーバーに対応するデータ ソースがローカル サーバーと同じ文字セットと並べ替え順を持っていることが確認できている場合のみ設定します。
collation name
use remote collation が true、かつ、データ ソースが SQL Server データ ソースでない場合に、リモート データ ソースが使用する照合順序の名前を指定します。SQL Server がサポートしている照合順序名のいずれかを指定する必要があります。
このオプションは、SQL Server 以外の OLE DB データ ソースにアクセスし、その照合順序が SQL Server 照合順序のいずれかと一致する場合に使用します。
リンク サーバーは、そのサーバー内のすべての列で使用される単一の照合順序をサポートしている必要があります。リンク サーバーが、単一のデータ ソース内で複数の照合順序をサポートしている、またはリンク サーバーの照合順序が SQL Server 照合順序のいずれかと一致するかどうかが判断できない場合は、このオプションを設定しないでください。
connect timeout
リンク サーバーに接続する場合のタイムアウト値です (秒単位)。
値が 0 の場合は、sp_configure の既定値を使用します。
data access
分散クエリ アクセスに対してリンク サーバーを有効または無効にします。sp_addlinkedserver を介して追加された sys.server エントリにのみ使用可能です。
dist
ディストリビュータです。
lazy schema validation
リモート テーブルのスキーマをチェックするかどうかを指定します。
true の場合、クエリの先頭でのリモート テーブルのチェックをスキップします。
pub
パブリッシャです。
query timeout
リンク サーバーに対するクエリのタイムアウト値です。
値が 0 の場合は、sp_configure の既定値を使用します。
rpc
指定されたサーバーからの RPC を有効にします。
rpc out
指定されたサーバーへの RPC を有効にします。
sub
サブスクライバです。
system
単に情報を示すためだけに特定されます。 サポートされていません。 将来の互換性は保証されません。
use remote collation
リモート列とローカル サーバーのどちらの照合順序を使用するかを指定します。
true の場合、SQL Server データ ソースに対してはリモート列の照合順序を使用し、SQL Server 以外のデータ ソースに対しては collation name で指定した照合順序を使用します。
false の場合、分散クエリは常にローカル サーバーの既定の照合順序を使用します。collation name とリモート列の照合順序は無視されます。既定値は false です。false の値は、SQL Server 7.0 で使用される照合順序セマンティクスと互換性があります。
remote proc transaction promotion
このオプションを使用して、Microsoft 分散トランザクション コーディネータ (MS DTC) トランザクションにより、サーバー間のプロシージャのアクションを保護します。このオプションが TRUE (ON) の場合、リモート ストアド プロシージャを呼び出すと分散トランザクションが開始され、トランザクションは MS DTC に参加します。リモート ストアド プロシージャを呼び出す SQL Server インスタンスは、トランザクションを実行したインスタンスであり、このインスタンスによってトランザクションが制御されます。この接続に対して引き続き COMMIT TRANSACTION または ROLLBACK TRANSACTION ステートメントを実行すると、制御側のインスタンスは MS DTC 対して、コンピュータ間の分散トランザクションの完了を管理することを要求します。
Transact-SQL 分散トランザクションが開始された後は、リンク サーバーとして定義されている他の SQL Server インスタンスに対し、リモート ストアド プロシージャを呼び出すことができます。リンク サーバーはすべて Transact-SQL 分散トランザクションに参加することになります。MS DTC では、各リンク サーバーでトランザクションが完了したかどうかが確認されます。
このオプションが FALSE (OFF) の場合は、リンク サーバーに対するリモート プロシージャ コールの呼び出し中、ローカル トランザクションは分散トランザクションに昇格されません。
サーバー間のプロシージャ コールを行う前にトランザクションが既に分散トランザクションである場合、このオプションに効力はありません。リンク サーバーに対するプロシージャ コールは、同じ分散トランザクションで実行されます。
サーバー間のプロシージャ コールを行う前に接続にアクティブなトランザクションがない場合、このオプションに効力はありません。プロシージャは、アクティブなトランザクションなしにリンク サーバーに対して実行されます。
このオプションの既定値は TRUE (ON) です。
[ @optvalue =] 'option_value'
option_name が有効 (TRUE または on) であるか、無効 (FALSE または off) であるかを指定します。option_value のデータ型は varchar(10) で、既定値はありません。option_value には、connect timeout および query timeout オプションの場合、負でない整数を指定できます。collation name オプションの場合、option_value には照合順序名または NULL を指定できます。
戻り値
成功した場合は 0 を、失敗した場合は 1 をそれぞれ返します。
説明
collation compatible オプションが TRUE に設定されている場合、collation name は自動的に NULL に設定されます。collation name が NULL 以外の値に設定されている場合、collation compatible は自動的に FALSE に設定されます。
権限
サーバーに対する ALTER ANY LINKED SERVER 権限が必要です。
例
次の例では、SQL Server の別のインスタンスに対応するリンク サーバー SEATTLE3 を、SQL Server のローカル インスタンスと互換性のある照合順序になるよう構成します。
USE master;
EXEC sp_serveroption 'SEATTLE3', 'collation compatible', 'true';