Considerações sobre servidor vinculado em um SQL Server clusterizado
Quando servidores vinculados são configurados em um SQL Server clusterizado em relação a provedores OLE DB que não são fornecidos com o SQL Server, verifique se os provedores OLE DB estão instalados em todos os nós do cluster. Além disso, todas as propriedades que definem o servidor vinculado devem ter transparência de local. Elas não devem conter informações que assumem que o SQL Server está sempre em execução em um nó específico do cluster.
O exemplo a seguir define um servidor vinculado em relação a um servidor que executa o SQL Server e faz referência a uma das tabelas remotas usando um nome de quatro partes em uma instrução SELECT. (Use SQLNCLI e o SQL Server redirecionará para a última versão do provedor OLE DB do SQL Server Native Client.)
sp_addlinkedserver @server = N'LinkServer',
@srvproduct = N' ',
@provider = N'SQLNCLI',
@datasrc = N'ServerNetName',
@catalog = N'AdventureWorks'
GO
SELECT *
FROM LinkServer.AdventureWorks.HumanResources.Employee
GO
Servidores vinculados de loopback
Servidores vinculados podem ser definidos para apontar novamente (loopback) para o servidor no qual eles são definidos. Servidores de loopback são mais úteis ao testar um aplicativo que usa consultas distribuídas em uma única rede de servidores.
Por exemplo, a execução do seguinte procedimento armazenado sp_addlinkedserver em um servidor nomeado MyServer define um servidor de loopback vinculado:
sp_addlinkedserver @server = N'MyLink',
@srvproduct = N' ',
@provider = N'SQLNCLI',
@datasrc = N'MyServer',
@catalog = N'AdventureWorks'
GO
Instruções Transact-SQL que usam MyLink como o nome do servidor executam loop por meio do provedor SQLNCLI e novamente para o servidor local.
Servidores de loopback vinculados não podem ser usados em uma transação distribuída. A tentativa de executar uma consulta distribuída em relação a um servidor de loopback vinculado de dentro de uma transação distribuída provoca um erro, como o erro 3910: "[Microsoft][Driver ODBC do SQL Server][SQL Server]O contexto da transação está sendo usado por outra sessão." Essa restrição não se aplica quando uma instrução INSERT...EXECUTE, emitida por uma conexão sem vários conjuntos de resultados ativos (MARS) habilitados, é executada em um servidor de loopback vinculado. Observe que a restrição ainda se aplica quando MARS é habilitado em uma conexão.
Consulte também