Compartir a través de


sp_serveroption (Transact-SQL)

Se aplica a: SQL Server

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

Convenciones de sintaxis de Transact-SQL

Sintaxis

sp_serveroption
    [ @server = ] N'server'
    , [ @optname = ] 'optname'
    , [ @optvalue = ] N'optvalue'
[ ; ]

Argumentos

[ @server = ] N'server'

Nombre del servidor para el que se va a establecer la opción. @server es sysname, sin ningún valor predeterminado.

[ @optname = ] 'optname'

Opción que se va a establecer para el servidor especificado. @optname es varchar(35), sin ningún valor predeterminado. @optname puede ser cualquiera de los siguientes valores.

Valor Descripción
compatible con intercalación Afecta a la ejecución de consultas distribuidas en servidores vinculados. Si esta opción se establece trueen , SQL Server asume que todos los caracteres del servidor vinculado son compatibles con el servidor local, con respecto al juego de caracteres y la 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 solo 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.
nombre de intercalación Especifica el nombre de la intercalación utilizada por el origen de datos remoto si se usa la intercalación true remota y el origen de datos no es un origen de datos de SQL Server. El nombre debe pertenecer a una de las intercalaciones que admite SQL Server.

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.
tiempo de espera de conexión Especifica el valor de tiempo de espera en segundos para conectarse a un servidor vinculado.

Si 0es , el valor de tiempo de espera de conexión usa el valor predeterminado configurado para la remote login timeout (s) configuración. El valor predeterminado de remote login timeout (s) es 10.

Puede ver esta configuración desde la vista de sys.configurations catálogo con la siguiente consulta: SELECT name, value_in_use FROM sys.configurations WHERE name like 'remote login timeout (s)';.
acceso a datos Habilita y deshabilita un servidor vinculado para el acceso a consultas distribuidas. Solo se puede usar para sys.server las entradas agregadas a través de sp_addlinkedserver.
dist Distribuidor.
name Especifica el nombre del objeto de servidor vinculado.

El cambio de nombre se refleja en el valor devuelto por la name columna de la sys.servers vista de catálogo, sin afectar al origen de datos remoto.
cadena de proveedor Especifica la cadena OLE DB que identifica el origen de una conexión de servidor vinculado.

El cambio de cadena del proveedor se refleja en el valor devuelto por la provider_string columna de la sys.servers vista de catálogo.
validación diferida del esquema Determina si se comprueba el esquema de las tablas remotas.

Si truees , omita la comprobación de esquemas de las tablas remotas al principio de la consulta.
pub Publisher.
tiempo de espera de consulta Especifica el valor de tiempo de espera de las consultas en un servidor vinculado.

Si 0es , use el sp_configure valor predeterminado.
RPC Habilita RPC desde el servidor dado.
rpc out Habilita RPC al servidor dado.
sub Suscriptor.
fría Solamente se identifica con fines informativos. No compatible. La compatibilidad con versiones posteriores no está garantizada.
usar intercalación remota Determina si se usa la intercalación de una columna remota o de un servidor local.

Si truees , la intercalación de columnas remotas se usa para orígenes de datos de SQL Server y la intercalación especificada en el nombre de intercalación se usa para orígenes de datos que no son de SQL Server. Este es el valor predeterminado.

Si falsees , las consultas distribuidas siempre usan la intercalación predeterminada del servidor local, mientras que el nombre de intercalación y la intercalación de columnas remotas se omiten.
promoción de transacciones de procedimientos remotos 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 (o on), llamar a un procedimiento almacenado remoto inicia una transacción distribuida e inscribe la transacción con 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 su realización. Cuando se emite una instrucción COMMIT TRANSACTION o ROLLBACK TRANSACTION posterior para la conexión, la instancia de control solicita que MS DTC administre la finalización de la transacción distribuida entre los equipos implicados.

Una vez iniciada una transacción distribuida de Transact-SQL, se pueden realizar llamadas a procedimientos almacenados remotos a otras instancias de SQL Server que se han definido como servidores vinculados. Todos los servidores vinculados están inscritos en la transacción distribuida de Transact-SQL y MS DTC garantiza que la transacción se complete en cada servidor vinculado.

Si esta opción está establecida en false (o off), una transacción local no se promueve a una transacción distribuida al llamar a una llamada a procedimiento remoto en un servidor vinculado.

Si antes de realizar una llamada a procedimiento de servidor a servidor, la transacción ya es una transacción distribuida, esta opción no tiene ningún efecto. La llamada de procedimiento en el servidor vinculado se ejecuta en la misma transacción distribuida.

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

El valor predeterminado de esta opción es true (o on).

[ @optvalue = ] N'optvalue'

Especifica si el @optname debe estar habilitado (true o on), o deshabilitado (false o off). @optvalue es nvarchar(128), sin valor predeterminado.

  • En el caso de las opciones de tiempo de espera de conexión y tiempo de espera de consulta, @optvalue podría ser un entero no negativo.

  • Para la opción de nombre de intercalación, @optvalue podría ser un nombre de intercalación o NULL.

  • Para la opción de nombre , @optvalue podría ser una cadena, que representa el nuevo nombre de la conexión del servidor vinculado.

  • Para la opción de cadena de proveedor, @optvalue podría ser una cadena o NULL, que representa el nuevo origen OLE DB de la conexión del servidor vinculado.

Valores de código de retorno

0 (correcto) o 1 (erróneo).

Comentarios

Si la opción compatible con la intercalación se establece trueen , el nombre de intercalación se establece NULLautomáticamente en .

Si el nombre de intercalación se establece en un valor distinto de NULL, la intercalación compatible automáticamente se establece falseen .

Permisos

Requiere el permiso ALTER ANY LINKED SERVER en el servidor.

Ejemplos

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

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

En el ejemplo siguiente se cambia el nombre de la conexión del servidor vinculado de PRODVM01\ProdSQL01 a LinkToProdSQL01.

USE master;
GO
EXEC sp_serveroption
    @server = N'PRODVM01\ProdSQL01',
    @optname = 'name',
    @optvalue = N'LinkToProdSQL01';
GO