sp_serveroption (Transact-SQL)

为远程服务器和链接服务器设置服务器选项。

主题链接图标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 collationtrue,而数据源不是 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'
    指定应启用(TRUEon)还是禁用(FALSEoff)option_name。option_value 的数据类型为 varchar(10),没有默认值。

    option_value 可以是用于 connect timeoutquery 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';