sql server所謂的分布式查詢(distributed query)是能夠訪問存放在同一部計算機或不同計算機上的sql server
或不同種類的資料來源, 從概念上來說分布式查詢與普通查詢區別 它需要連線多個mssql伺服器也就是具有多了資料來源.
實現在伺服器跨域或跨伺服器訪問. 而這些查詢是否被使用完全看使用的需要.
--檢視鏈結伺服器
select name ,
product ,
provider ,
data_source ,
query_timeout ,
lazy_schema_validation ,
is_remote_login_enabled ,
is_rpc_out_enabled
from sys.servers
where is_linked = 1
--建立鏈結伺服器
exec sp_addlinkedserver '666宿舍 ', ' ', 'sqloledb ', '192.168.77.251'
exec sp_addlinkedsrvlogin '666宿舍 ', 'false ',null, 'sa ', '123456'
--查詢示例
select * from [666宿舍].ycmis.dbo.費用表
--匯入示例
select * into 新錶 from [666宿舍].ycmis.dbo.費用表
--以後不再使用時刪除鏈結伺服器
exec sp_dropserver '666宿舍 ', 'droplogins '
--連線遠端/區域網資料(openrowset/openquery/opendatasource)
--sql server 阻止了對元件 'ad hoc distributed queries'
exec sp_configure 'show advanced options',1
reconfigure
exec sp_configure 'ad hoc distributed queries',1
reconfigure
-- 使用完成後,關閉ad hoc distributed queries:
exec sp_configure 'ad hoc distributed queries',0
reconfigure
exec sp_configure 'show advanced options',0
reconfigure
--1、openrowset
--查詢示例
select * from openrowset( 'sqloledb ', '192.168.77.251 '; 'sa '; '123456',ycmis.dbo.費用表)
--生成本地表
select * into 表 from openrowset( 'sqloledb ', '192.168.77.251 '; 'sa '; '123456',ycmis.dbo.費用表)
--把本地表匯入遠端表
insert openrowset( 'sqloledb ', '192.168.77.251 '; 'sa'; '123456',ycmis.dbo.表名)
select *from 本地表
--更新本地表
update b
set b.列a=a.列a
from openrowset( 'sqloledb ', '192.168.77.251 '; 'sa '; '123456',ycmis.dbo.費用表) as a inner join 本地表 b
on a.column1=b.column1
--openquery用法需要建立乙個連線
--首先建立乙個連線建立鏈結伺服器
exec sp_addlinkedserver '666宿舍 ', ' ', 'sqloledb ', '192.168.77.251'
--查詢
select *
from openquery([666宿舍], 'select * from ycmis.dbo.費用表 ')
--把本地表匯入遠端表
insert openquery([666宿舍], 'select * from ycmis.dbo.遠端表 ')
select * from 本地表
--更新本地表
update b
set b.列b=a.列b
from openquery([666宿舍], 'select * from ycmis.dbo.費用表 ') as a
inner join 本地表 b on a.列a=b.列a
--3、opendatasource/openrowset
select *
from opendatasource( 'sqloledb ', 'data source=192.168.77.251;user id=sa;password=123456' ).ycmis.dbo.費用表
--把本地表匯入遠端表
insert opendatasource( 'sqloledb ', 'data source=192.168.77.251;user id=sa;password=123456' ).ycmis.dbo.費用表
select * from 本地表
分布式查詢
sql server所謂的分布式查詢 distributed query 是能夠訪問存放在同一部計算機或不同計算機上的sql server 或不同種類的資料來源,從概念上來說分布式查詢與普通查詢區別 它需要連線多個mssql伺服器也就是具有多了資料來源.實現在伺服器跨域或跨伺服器訪問.而這些查詢是否...
分布式查詢
exec sp addlinkedserver server servera srvproduct provider sqloledb datasrc 192.168.0.28 exec sp addlinkedsrvlogin rmtsrvname servera useself false rm...
分布式查詢 opendatasource
insert into t gene sy pres pres name,address,byrs,edus id,gdrxnl,kinderclass id,kindertype id select pres name,address,cast byrs as numeric cast edus ...