sp_serveroption (Transact-SQL)

適用対象:SQL Server (サポートされているすべてのバージョン)

リモート サーバーとリンク サーバーのサーバー オプションを設定します。

Topic link iconTransact-SQL 構文表記規則

構文

sp_serveroption [@server = ] 'server'   
      ,[@optname = ] 'option_name'       
      ,[@optvalue = ] 'option_value' ;  

引数

[ @server = ] 'server' オプションを設定するサーバーの名前を指定します。 server のデータ型は sysnameで、既定値はありません。

[ @optname = ] 'option_name' 指定したサーバーに設定するオプションです。 option_namevarchar(35)で、既定値はありません。 option_name には、次のいずれかの値を指定できます。

説明
照合順序に互換性がある リンク サーバーに対する分散クエリの実行に影響を与えます。 このオプションが true に設定されている場合、SQL Serverは、リンク サーバー内のすべての文字が、文字セットと照合順序 (または並べ替え順序) に関してローカル サーバーと互換性があることを前提としています。 これにより、 SQL Server からプロバイダーに文字を含む列の比較を送信できるようになります。 このオプションが設定されていない場合、 SQL Server では文字列を含む列の比較の評価は常にローカルで行われます。

このオプションは、リンク サーバーに対応するデータ ソースがローカル サーバーと同じ文字セットと並べ替え順を持っていることが確認できている場合のみ設定します。
照合順序名 リモート照合順序の使用が true で、データ ソースが SQL Server データ ソースでない場合に、リモート データ ソースで使用される照合順序の名前を指定します。 SQL Serverがサポートしている照合順序名のいずれかを指定する必要があります。

このオプションは、 SQL Server以外の OLE DB データ ソースにアクセスし、その照合順序が SQL Server 照合順序のいずれかと一致する場合に使用します。

リンク サーバーは、そのサーバー内のすべての列で使用される単一の照合順序をサポートしている必要があります。 リンク サーバーが、単一のデータ ソース内で複数の照合順序をサポートしている、またはリンク サーバーの照合順序が SQL Server 照合順序のいずれかと一致するかどうかが判断できない場合は、このオプションを設定しないでください。
connect timeout リンク サーバーに接続するためのタイムアウト値 (秒単位)。

0 の場合は、sp_configureの既定値使用します。
データ アクセス 分散クエリ アクセスに対してリンク サーバーを有効または無効にします。 sp_addlinkedserverを介して追加された sys.server エントリにのみ使用できます。
dist ディストリビューターです。
lazy schema validation (lazy schema validation) リモート テーブルのスキーマをチェックするかどうかを指定します。

true の場合は、クエリの先頭にあるリモート テーブルのスキーマ チェックをスキップします。
pub パブリッシャー。
クエリのタイムアウト リンク サーバーに対するクエリのタイムアウト値です。

0 の場合は、sp_configureの既定値使用します。
Rpc 指定されたサーバーから RPC を有効にします。
rpc out 指定されたサーバーに対して RPC を有効にします。
sub サブスクライバー。
システム 単に情報を示すためだけに特定されます。 サポートされていません。 将来の互換性は保証されません。
リモート照合順序を使用する リモート列とローカル サーバーのどちらの照合順序を使用するかを指定します。

true の場合、リモート列の照合順序はSQL Serverデータ ソースに使用され、照合順序名で指定された照合順序はSQL Server以外のデータ ソースに使用されます。 既定値です。

false の場合、分散クエリでは常にローカル サーバーの既定の照合順序が使用されますが、照合順序名とリモート列の照合順序は無視されます。
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 またはオン) か無効 (FALSE または無効) かを指定します。 option_valuevarchar(10) で、既定値はありません。

option_value は、 接続タイムアウト オプションと クエリ タイムアウト オプションの負でない整数である場合があります。 照合順序名オプションの場合、option_value照合順序名または NULL にすることができます。

リターン コードの値

0 (成功) または 1 (失敗)

解説

照合順序互換オプションが TRUE に設定されている場合、照合順序名は自動的に NULL に設定されます。 照合順序名が null 以外の値に設定されている場合、照合順序互換は自動的に FALSE に設定されます。

アクセス許可

サーバーに対する ALTER ANY LINKED SERVER 権限が必要です。

次の例では、SQL Serverの別のインスタンスに対応するリンク サーバーを、SEATTLE3SQL Serverのローカル インスタンスと照合順序の互換性を持つよう構成します。

USE master;  
EXEC sp_serveroption 'SEATTLE3', 'collation compatible', 'true';  

参照

分散クエリ ストアド プロシージャ (Transact-SQL)
sp_adddistpublisher (Transact-SQL)
sp_addlinkedserver (Transact-SQL)
sp_dropdistpublisher (Transact-SQL)
sp_helpserver (Transact-SQL)
システム ストアド プロシージャ (Transact-SQL)