多重 SQL Server 執行個體上的分散式查詢
若要在執行多重 SQL Server 執行個體 (Instance) 的伺服器上指定一個 Microsoft SQL Server 2000 執行個體,用於分散式查詢的 Transact-SQL 項目語法並不需要作任何變更。您可使用下列方式在分散式查詢內指定執行個體: 使用 sp_addlinkedserver 的 @datasrc 參數 (Parameter) 內的語法 'server_name/instance_name' 來指定伺服器名稱。
在連線字串內指定 Server=server_name; INSTANCENAME=instance_name。
若沒有指定執行個體,分散式查詢將連線至指定伺服器上的預設 SQL Server 2000 執行個體。下列範例將在名為 London 的伺服器上指定一個名為 Payroll 的特定執行個體:-- Define a linked server on an instance of SQL Server using @datasrc.
sp_addlinkedserver
@server = 'LondonPayroll1',
@provider = 'SQLOLEDB',
@datasource = 'London/Payroll'-- Define a linked server on an instance of SQL Server using
-- INSTANCENAME in a provider string.
sp_addlinkedserver
@server = 'LondonPayroll2',
@provider = 'SQLOLEDB',
@provstr = 'Server=London;INSTANCENAME=Payroll'-- Specify an instance of SQL Server in OPENDATASOURCE
-- using Data Source.
SELECT *
FROM OPENDATASOURCE(
'SQLOLEDB',
'Data Source=London/Payroll;User ID=MyUID;Password=MyPass'
).Northwind.dbo.Categories-- Specify an instance of SQL Server in OPENROWSET
-- using a provider string.
SELECT a.*
FROM OPENROWSET(
'SQLOLEDB',
'Data Source=London;INSTANCENAME=Payroll;
User ID=MyUID;Password=MyPass',
Northwind.dbo.Categories
) AS a-- Specify an instance of SQL Server in OPENROWSET
-- using a the datasource parameter.
SELECT a.*
FROM OPENROWSET(
'SQLOLEDB','London/Payroll','MyUID','MyPass',
'SELECT * FROM Northwind.dbo.Categories'
) AS a
若要在執行多重 SQL Server 執行個體 (Instance) 的伺服器上指定一個 Microsoft SQL Server 2000 執行個體,用於分散式查詢的 Transact-SQL 項目語法並不需要作任何變更。您可使用下列方式在分散式查詢內指定執行個體: 使用 sp_addlinkedserver 的 @datasrc 參數 (Parameter) 內的語法 'server_name/instance_name' 來指定伺服器名稱。
在連線字串內指定 Server=server_name; INSTANCENAME=instance_name。
若沒有指定執行個體,分散式查詢將連線至指定伺服器上的預設 SQL Server 2000 執行個體。下列範例將在名為 London 的伺服器上指定一個名為 Payroll 的特定執行個體:-- Define a linked server on an instance of SQL Server using @datasrc.
sp_addlinkedserver
@server = 'LondonPayroll1',
@provider = 'SQLOLEDB',
@datasource = 'London/Payroll'-- Define a linked server on an instance of SQL Server using
-- INSTANCENAME in a provider string.
sp_addlinkedserver
@server = 'LondonPayroll2',
@provider = 'SQLOLEDB',
@provstr = 'Server=London;INSTANCENAME=Payroll'-- Specify an instance of SQL Server in OPENDATASOURCE
-- using Data Source.
SELECT *
FROM OPENDATASOURCE(
'SQLOLEDB',
'Data Source=London/Payroll;User ID=MyUID;Password=MyPass'
).Northwind.dbo.Categories-- Specify an instance of SQL Server in OPENROWSET
-- using a provider string.
SELECT a.*
FROM OPENROWSET(
'SQLOLEDB',
'Data Source=London;INSTANCENAME=Payroll;
User ID=MyUID;Password=MyPass',
Northwind.dbo.Categories
) AS a-- Specify an instance of SQL Server in OPENROWSET
-- using a the datasource parameter.
SELECT a.*
FROM OPENROWSET(
'SQLOLEDB','London/Payroll','MyUID','MyPass',
'SELECT * FROM Northwind.dbo.Categories'
) AS a
insert into Northwind.dbo.Categories
select * from
(
SELECT *
FROM OPENDATASOURCE(
'SQLOLEDB',
'Data Source=ServerName;User ID=MyUID;Password=MyPass'
).Northwind.dbo.Categories
)
A