sp_serveroption (Transact-SQL)
Define opções de servidor para servidores remotos e servidores vinculados.
Sintaxe
sp_serveroption [@server = ] 'server'
,[@optname = ] 'option_name'
,[@optvalue = ] 'option_value' ;
Argumentos
[ @server = ] 'server'
É o nome do servidor para o qual a opção será definida. server é sysname, sem padrão.[ @optname = ] 'option_name'
É a opção a ser definida para o servidor especificado. option_name é varchar(35), sem padrão. option_name pode ser qualquer um dos seguintes valores.Valor
Descrição
compatível com agrupamento
Afeta a execução da Consulta Distribuída nos servidores vinculados. Se esta opção estiver definida como true, o SQL Server assumirá que todos os caracteres no servidor vinculado são compatíveis com o servidor local, no que diz respeito ao conjunto de caracteres e à seqüência do agrupamento (ou ordem de classificação). Isso permite que o SQL Server envie comparações sobre colunas de caracteres ao provedor. Se essa opção não estiver definida, o SQL Server sempre avaliará comparações sobre 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 do agrupamento
Especifica o nome do agrupamento usado pela fonte de dados remota se o uso do agrupamento remoto for true e a fonte de dados não for uma fonte de dados do SQL Server. O nome deve ser um dos agrupamentos que têm suporte do SQL Server.
Use essa opção ao acessar uma origem de dados OLE DB diferente do SQL Server, mas cujo agrupamento coincide com um dos agrupamentos do SQL Server.
O servidor vinculado deve fornecer suporte a um único agrupamento a ser usado para todas as colunas naquele servidor. Não defina essa opção se o servidor vinculado fornecer suporte a vários agrupamentos dentro de uma única fonte de dados ou se o agrupamento do servidor vinculado não puder ser determinado para corresponder a um dos agrupamentos do SQL Server.
tempo limite da conexão
O valor do tempo limite em segundos para conexão a um servidor vinculado.
Se for 0, use o padrão sp_configure.
acesso a dados
Habilita e desabilita um servidor vinculado para acesso a consultas distribuídas. Pode ser usado apenas para entradas de sys.server adicionadas por meio de sp_addlinkedserver.
dist
Distribuidor.
validação de esquema lenta
Determina se o esquema de tabelas remotas será verificado.
Se true, ignorará a verificação do esquema de tabelas remotas no início da consulta.
pub
Publicador.
tempo limite de consulta
O valor do tempo limite para consultas em um servidor vinculado.
Se for 0, use o padrão sp_configure.
rpc
Habilita RPC a partir do servidor fornecido.
rpc out
Habilita RPC para o servidor fornecido.
sub
Assinante.
sistema
Identificado apenas para fins informativos. Sem suporte. A compatibilidade futura não está garantida.
usar agrupamento remoto
Determina se o agrupamento de uma coluna remota ou de um servidor local será usado.
Se true, o agrupamento de colunas remotas será usado para as fontes de dados do SQL Server e o agrupamento especificado no nome do agrupamentoserá usado para fontes de dados não-SQL Server.
Se false, as consultas distribuídas sempre usarão o agrupamento padrão do servidor local, enquanto que o nome do agrupamento e o agrupamento de colunas remotas serão ignorados. O padrão é false. (O valor false é compatível com a semântica do agrupamento usada no SQL Server 7.0.)
promoção de transação de proc remoto
Use esta opção para proteger as ações de um procedimento servidor a servidor por meio de uma transação do MS DTC (Coordenador de Transações Distribuídas da Microsoft). Quando esta opção for TRUE (ou ON), a chamada de um procedimento armazenado remoto iniciará uma transação distribuída e inscreverá a transação no MS DTC. A instância do SQL Server que chama o procedimento armazenado remoto é a originadora da transação e controla a conclusão da transação. Quando uma instrução COMMIT TRANSACTION ou ROLLBACK TRANSACTION subseqüente é emitida para a conexão, a instância controladora solicita que o MS DTC gerencie a conclusão da transação distribuída em todos os computadores envolvidos.
Depois que uma transação distribuída Transact-SQL foi iniciada, é possível fazer chamadas de procedimento armazenado remoto a outras instâncias do SQL Server, que foram definidas como servidores vinculados. Os servidores vinculados são todos inscritos na transação de distribuição do Transact-SQL, e o MS DTC garante que a transação seja completada 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 durante a chamada de um procedimento remoto em um servidor vinculado.
Se antes de fazer uma chamada de procedimento de servidor a servidor, a transação já for uma transação distribuída, essa opção não terá efeito. A chamada de procedimento em relação ao servidor vinculado executará sob a mesma transação distribuída.
Se antes de fazer uma chamada de procedimento armazenado de servidor a servidor não houver nenhuma transação ativa, 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 dessa opção é TRUE (ou ON).
[ @optvalue =] 'option_value'
Especifica se option_name deve ser habilitado (TRUE ou on) ou desabilitado (FALSE ou off). option_value é varchar(10), sem padrão.option_value pode ser um inteiro não negativo para as opções tempo limite da conexão e tempo limite da consulta. Para a opção nome do agrupamento, option_value pode ser um nome de agrupamento ou NULL.
Valores de código de retorno
0 (êxito) ou 1 (falha)
Comentários
Se a opção compatível com agrupamento estiver definida como TRUE, nome do agrupamento será definido automaticamente como NULL. Se nome do agrupamento estiver definido como um valor não nulo, compatível com agrupamento será definido 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 que seja compatível com agrupamento com a instância local do SQL Server.
USE master;
EXEC sp_serveroption 'SEATTLE3', 'collation compatible', 'true';