Partilhar via


Consultas distribuídas em várias instâncias do SQL Server

A especificação de uma instância do SQL Server em um servidor que executa várias instâncias do SQL Server não requer nenhum alteração de sintaxe para os elementos Transact-SQL usados em consultas distribuídas. Instâncias podem ser especificadas em consultas distribuídas usando um dos seguintes métodos:

  • Especifique um nome de servidor usando a sintaxe 'server_name\instance_name' no parâmetro @datasrc de sp_addlinkedserver.

  • Especifique 'server=server_name\instance_name' em uma cadeia de conexão.

Se uma instância não for especificada, a consulta distribuída conectar-se-á com a instância padrão do SQL Server no servidor especificado.

Os exemplos a seguir mostram a especificação de uma instância específica nomeada Payroll em um servidor nomeado London. (Use SQLNCLI e o SQL Server redirecionará para a última versão do provedor OLE DB do SQL Server Native Client.)

-- Define a linked server on an instance of SQL Server by using @datasrc.
sp_addlinkedserver
    @server = 'LondonPayroll1',
    @srvproduct = ' ',
    @provider = 'SQLNCLI',
    @datasrc = 'London\Payroll'

-- Define a linked server on an instance of SQL Server by using
-- server_name\instance_name in a provider string.
sp_addlinkedserver
    @server = 'LondonPayroll2',
    @srvproduct = ' ',
    @provider = 'SQLNCLI',
    @provstr = 'Server=London\Payroll'

-- Specify an instance of SQL Server in OPENDATASOURCE
-- by using a provider string.
SELECT *
FROM OPENDATASOURCE('SQLNCLI',
    'Data Source=London\Payroll;Integrated Security=SSPI')
    .AdventureWorks.HumanResources.Employee

-- Specify an instance of SQL Server in OPENROWSET
-- by using a provider string.
SELECT a.*
FROM OPENROWSET(
     'SQLNCLI',
     'Server=London\Payroll;Trusted_Connection=yes',
      AdventureWorks.HumanResources.Employee) AS a