Compartilhar via


sp_serveroption (Transact-SQL)

Aplica-se: SQL Server

Define opções de servidor para servidores remotos e servidores vinculados.

Convenções de sintaxe de Transact-SQL

Sintaxe

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

Argumentos

@server [ = ] N'servidor'

O nome do servidor para o qual a opção será definida. @server é sysname, sem padrão.

@optname [ = ] 'optname'

A opção a ser definida para o servidor especificado. @optname é varchar(35), sem padrão. @optname pode ser qualquer um dos seguintes valores.

Valor Descrição
Compatível com agrupamento Afeta a execução de consultas distribuídas em servidores vinculados. Se essa opção estiver definida como true, o SQL Server pressupõe que todos os caracteres no servidor vinculado são compatíveis com o servidor local, em relação ao conjunto de caracteres e à sequência de ordenação (ou ordem de classificação). Isso permite que o SQL Server envie comparações em colunas de caracteres ao provedor. Se essa opção não estiver definida, o SQL Server sempre avaliará as comparações nas colunas de caracteres localmente.

Essa opção deve ser definida somente se você tiver certeza de que a fonte de dados correspondente ao servidor vinculado tem o mesmo conjunto de caracteres e ordem de classificação do servidor local.
nome da ordenação Especifica o nome da ordenação usada pela fonte de dados remota se a ordenação remota for true usada e a fonte de dados não for uma fonte de dados do SQL Server. O nome deve ser uma das ordenações com suporte pelo SQL Server.

Use essa opção ao acessar uma fonte de dados OLE DB diferente do SQL Server, mas cuja ordenação corresponda a uma das ordenações do SQL Server.

O servidor vinculado deve oferecer suporte a uma única ordenação a ser usada em todas as colunas desse servidor. Não defina essa opção se o servidor vinculado oferecer suporte a várias ordenações em uma única fonte de dados ou se a ordenação do servidor vinculado não puder ser determinada como correspondendo a uma das ordenações do SQL Server.
Tempo limite de conexão Especifica o valor de tempo limite em segundos para se conectar a um servidor vinculado.

Se 0, a configuração de tempo limite de conexão usa o valor padrão configurado para a remote login timeout (s) configuração. O valor padrão para remote login timeout (s) é 10.

Você pode exibir essa configuração na sys.configurations exibição do catálogo com a seguinte consulta: SELECT name, value_in_use FROM sys.configurations WHERE name like 'remote login timeout (s)';.
Acesso a dados Habilita e desativa um servidor vinculado para acesso a consultas distribuídas. Pode ser usado apenas para sys.server entradas adicionadas por meio de sp_addlinkedserver.
dist Distribuidor.
name Especifica o nome do objeto de servidor vinculado.

A alteração de nome é refletida no valor retornado pela name coluna da exibição do catálogo, sem afetar a fonte de sys.servers dados remota.
cadeia de caracteres do provedor Especifica a cadeia de caracteres OLE DB que identifica a origem de uma conexão de servidor vinculada.

A alteração da cadeia de caracteres do provedor é refletida no valor retornado pela provider_string coluna da exibição do sys.servers catálogo.
Validação de esquema lento Determina se o esquema de tabelas remotas é verificado.

Se true, ignore a verificação de esquema de tabelas remotas no início da consulta.
pub Publicador.
Tempo limite da consulta Especifica o valor de tempo limite para consultas em um servidor vinculado.

Se 0, use o sp_configure padrão.
rpc Habilita RPC a partir do servidor fornecido.
saída rpc Habilita RPC para o servidor fornecido.
sub Subscritor.
system Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida.
Usar agrupamento remoto Determina se a ordenação de uma coluna remota ou de um servidor local é usada.

Se true, a ordenação de colunas remotas é usada para fontes de dados do SQL Server e a ordenação especificada no nome da ordenação é usada para fontes de dados não SQL Server. Esse é o padrão.

Se false, as consultas distribuídas sempre usam a ordenação padrão do servidor local, enquanto o nome da ordenação e a ordenação de colunas remotas são ignorados.
Promoção de transação de proc remoto Use essa opção para proteger as ações de um procedimento de servidor para servidor por meio de uma transação do Coordenador de Transações Distribuídas da Microsoft (MS DTC). Quando essa opção é true (ou on), chamar um procedimento armazenado remoto inicia uma transação distribuída e inscreve a transação no MS DTC. A instância do SQL Server que chama o procedimento armazenado remoto é o que origina a transação e controla a conclusão da transação. Quando uma instrução COMMIT TRANSACTION ou ROLLBACK TRANSACTION subsequente é emitida para a conexão, a instância de controle solicita que o MS DTC gerencie a conclusão da transação distribuída entre os computadores envolvidos.

Depois que uma transação distribuída Transact-SQL tiver sido iniciada, as chamadas de procedimento armazenado remoto poderão ser feitas para outras instâncias do SQL Server que foram definidas como servidores vinculados. Os servidores vinculados são todos inscritos na transação distribuída Transact-SQL, e o MS DTC garante que a transação seja concluída em cada servidor vinculado.

Se essa opção estiver definida como false (ou off), uma transação local não será promovida a uma transação distribuída ao chamar uma chamada de procedimento remoto em um servidor vinculado.

Se antes de fazer uma chamada de procedimento de servidor para servidor, a transação já for uma transação distribuída, essa opção não terá efeito. A chamada de procedimento no servidor vinculado é executada na mesma transação distribuída.

Se não houver nenhuma transação ativa na conexão antes de fazer uma chamada de procedimento de servidor para servidor, essa opção não terá efeito. Em seguida, o procedimento executa em relação ao servidor vinculado sem transações ativas.

O valor padrão para essa opção é true (ou on).

@optvalue [ = ] N'optvalue'

Especifica se o @optname deve ser habilitado (true ou on) ou desabilitado (false ou off). @optvalue é nvarchar(128), sem padrão.

  • Para as opções de tempo limite de conexão e tempo limite de consulta, @optvalue pode ser um inteiro não negativo.

  • Para a opção de nome de agrupamento, @optvalue pode ser um nome de agrupamento ou NULL.

  • Para a opção de nome , @optvalue pode ser uma cadeia de caracteres, que representa o novo nome da conexão do servidor vinculado.

  • Para a opção de cadeia de caracteres do provedor, @optvalue pode ser uma cadeia de caracteres ou NULL, representando a nova origem OLE DB da conexão do servidor vinculado.

Valores do código de retorno

0 (sucesso) ou 1 (falha).

Comentários

Se a opção compatível com agrupamento estiver definida como true, o nome do agrupamento será definido automaticamente como NULL.

Se o nome da ordenação for definido como um valor não nulo, a ordenação compatível será definida automaticamente como false.

Permissões

Requer permissão ALTER ANY LINKED SERVER no servidor.

Exemplos

O exemplo a seguir configura um servidor vinculado correspondente a outra instância do SQL Server, SEATTLE3, para ser compatível com a instância local do SQL Server.

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

O exemplo a seguir renomeia a conexão do servidor vinculado de PRODVM01\ProdSQL01 para .LinkToProdSQL01

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