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