다음을 통해 공유


SQL Server의 여러 인스턴스에 대한 분산 쿼리

SQL Server의 여러 인스턴스를 실행 중인 서버에서 SQL Server 인스턴스를 하나 지정하는 경우 분산 쿼리에서 사용되는 Transact-SQL 요소의 구문을 변경할 필요가 없습니다. 다음 방법 중 하나로 분산 쿼리에 서버 인스턴스를 지정할 수 있습니다.

  • sp_addlinkedserver@datasrc 매개 변수에 'server_name\instance_name' 구문을 사용하여 서버 이름을 지정합니다.

  • 연결 문자열에 **'server=server_name\instance_name'**을 지정합니다.

인스턴스를 지정하지 않으면 분산 쿼리가 지정된 서버의 기본 SQL Server 인스턴스에 연결합니다.

다음 예에서는 London이라는 서버에 Payroll이라는 특정 인스턴스를 지정하는 방법을 보여 줍니다. SQLNCLI를 사용하면 SQL Server가 최신 버전의 SQL Server Native Client OLE DB 공급자로 리디렉션됩니다.

-- 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