sp_serveroption (Transact-SQL)

Establece las opciones de servidor de los servidores remotos y vinculados.

Icono de vínculo a temasConvenciones de sintaxis de Transact-SQL

Sintaxis

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

Argumentos

  • [ @server = ] 'server'
    Es el nombre del servidor para el que se establece la opción. server es de tipo sysname y no tiene ningún valor predeterminado.

  • [ @optname = ] 'option_name'
    Es la opción que se va a establecer en el servidor especificado. option_name es de tipo varchar(35) y no tiene ningún valor predeterminado. option_name puede tener los valores siguientes:

    Valor

    Descripción

    collation compatible

    Afecta a la ejecución de consultas distribuidas en los servidores vinculados. Si esta opción se establece en true, SQL Server asume que todos los caracteres del servidor vinculado son compatibles con el servidor local en lo que respecta a juego de caracteres y secuencia de intercalación (o criterio de ordenación). Esta opción habilita a SQL Server para enviar comparaciones en columnas de caracteres al proveedor. Si no se establece esta opción, SQL Server siempre evalúa localmente las comparaciones en las columnas de caracteres.

    Esta opción sólo se debe establecer si se tiene la certeza de que el origen de datos correspondiente al servidor vinculado tiene el mismo juego de caracteres y criterio de ordenación que el servidor local.

    collation name

    Especifica el nombre de la intercalación utilizada por el origen de datos remoto si use remote collation es true y el origen de datos no es de SQL Server. El nombre debe pertenecer a una de las intercalaciones que SQL Server admite.

    Utilice esta opción cuando se obtenga acceso a un origen de datos OLE DB que no sea SQL Server, pero que tenga una intercalación que coincida con una de las intercalaciones de SQL Server.

    El servidor vinculado debe permitir el uso de una única intercalación para todas las columnas de ese servidor. No establezca esta opción si el servidor vinculado admite varias intercalaciones dentro de un único origen de datos o si no se puede determinar si la intercalación del servidor vinculado coincide con alguna de las intercalaciones de SQL Server.

    connect timeout

    Valor del tiempo de espera en segundos para conectarse a un servidor vinculado.

    Si es 0, se utiliza el valor predeterminado de sp_configure.

    data access

    Habilita y deshabilita un servidor vinculado para el acceso a consultas distribuidas. Sólo se puede utilizar para entradas sys.server agregadas a través de sp_addlinkedserver.

    dist

    Distribuidor.

    lazy schema validation

    Determina si se comprobará el esquema de las tablas remotas.

    Si es true, omite la comprobación del esquema de las tablas remotas al principio de la consulta.

    pub

    Publicador.

    query timeout

    Valor de tiempo de espera para las consultas que se realizan en un servidor vinculado.

    Si es 0, se utiliza el valor predeterminado de sp_configure.

    rpc

    Habilita RPC desde el servidor dado.

    rpc out

    Habilita RPC al servidor dado.

    sub

    Suscriptor.

    system

    Solamente se identifica con fines informativos. No compatible. La compatibilidad con versiones posteriores no está garantizada.

    use remote collation

    Determina si se utilizará la intercalación de una columna remota o de un servidor local.

    Si es true, se utiliza la intercalación de columnas remotas para los orígenes de datos de SQL Server y la intercalación especificada en collation name para los orígenes de datos que no son de SQL Server.

    Si es false, las consultas distribuidas siempre utilizarán la intercalación predeterminada del servidor local, pasando por alto collation name y la intercalación de columnas remotas. El valor predeterminado es false. (El valor false es compatible con la semántica de intercalación utilizada en SQL Server 7.0.)

    remote proc transaction promotion

    Use esta opción para proteger las acciones de un procedimiento entre servidores a través de una transacción del Coordinador de transacciones distribuidas de Microsoft (MS DTC). Cuando esta opción es TRUE (u ON) al llamar a un procedimiento almacenado remoto se inicia una transacción distribuida y se da de alta la transacción en MS DTC. La instancia de SQL Server que efectúa la llamada al procedimiento almacenado remoto es el originador de la transacción y controla que finaliza la transacción. Cuando se emite una instrucción posterior COMMIT TRANSACTION o ROLLBACK TRANSACTION para la conexión, la instancia de control solicita a MS DTC que administre la realización de la transacción distribuida entre los servidores participantes.

    Una vez iniciada una transacción distribuida de Transact-SQL, se pueden realizar llamadas a procedimientos almacenados remotos en otras instancias de SQL Server que se hayan definido como servidores vinculados. Todos los servidores vinculados se dan de alta en la transacción distribuida de Transact-SQL y MS DTC se asegura de que la transacción se complete en cada uno de ellos.

    Si esta opción está establecida en FALSE (u OFF), una transacción local no se promoverá a una transacción distribuida mientras se llame a una llamada a procedimiento remoto en un servidor vinculado.

    Si antes de realizar una llamada a procedimiento entre servidores, la transacción ya es una transacción distribuida, esta opción no tiene efecto alguno. La llamada a procedimiento en un servidor vinculado se ejecutará en la misma transacción distribuida.

    Si antes de realizar una llamada a procedimiento entre servidores, no existe ninguna transacción activa en la conexión, esta opción no tiene efecto alguno. A continuación, el procedimiento se ejecuta en el servidor vinculado sin transacciones activas.

    El valor predeterminado para esta opción es TRUE (u ON).

  • [ @optvalue =] 'option_value'
    Especifica si se debe habilitar (TRUE o activado) o deshabilitar (FALSE o desactivado) option_name. option_value es de tipo varchar(10) y no tiene ningún valor predeterminado.

    option_value puede ser un entero no negativo para las opciones connect timeout y query timeout. Para la opción collation name, option_value puede ser un nombre de intercalación o NULL.

Valores de código de retorno

0 (correcto) o 1 (error)

Comentarios

Si la opción collation compatible se establece en TRUE, collation name se establecerá automáticamente en NULL. Si collation name se establece en un valor que no sea NULL, collation compatible se establecerá automáticamente en FALSE.

Permisos

Requiere el permiso ALTER ANY LINKED SERVER en el servidor.

Ejemplos

En el ejemplo siguiente se configura un servidor vinculado que corresponde a otra instancia de SQL Server, SEATTLE3, para que sea compatible con la intercalación de la instancia local de SQL Server.

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