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',
1reconfigure
exec sp_configure 'ad hoc distributed queries',
1reconfigure
-- 使用完成後,關閉ad hoc distributed queries:
exec sp_configure 'ad hoc distributed queries',
0reconfigure
exec sp_configure 'show advanced options',
0reconfigure
--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 本地表
分布式查詢
exec sp addlinkedserver server servera srvproduct provider sqloledb datasrc 192.168.0.28 exec sp addlinkedsrvlogin rmtsrvname servera useself false rm...
分布式查詢
sql server所謂的分布式查詢 distributed query 是能夠訪問存放在同一部計算機或不同計算機上的sql server 或不同種類的資料來源,從概念上來說分布式查詢與普通查詢區別 它需要連線多個mssql伺服器也就是具有多了資料來源.實現在伺服器跨域或跨伺服器訪問.而這些查詢是否...
分布式查詢 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 ...