SQLServer跨庫查詢--分布式查詢


出處:http://www.cnblogs.com/doosmile/archive/2012/03/16/2400646.html

--用openrowset連接遠程SQL或插入數據

--如果只是臨時訪問,可以直接用openrowset

--查詢示例

select * from openrowset('SQLOLEDB'

,'sql服務器名';'用戶名';'密碼'

,數據庫名.dbo.表名)

在跨庫查詢時需要啟用Ad Hoc Distributed Queries
啟用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


--導入示例

select * into 表 from openrowset('SQLOLEDB'

,'sql服務器名';'用戶名';'密碼'

,數據庫名.dbo.表名)


--創建鏈接服務器

exec sp_addlinkedserver  'srv_lnk','','SQLOLEDB','遠程服務器名或ip地址'

exec sp_addlinkedsrvlogin 'srv_lnk','false',null,'用戶名','密碼'

go

--創建鏈接服務器(包含鏡像)

Exec sp_addlinkedserver

@server = '14db',

@srvproduct = N'',

@provider = N'SQLOLEDB',

@provstr= = N'Server=10.2.16.11\COMPUTECLUSTER;FailoverPartner=10.2.16.12\COMPUTECLUSTER ;',

@catalog=N’SimCloud’

exec sp_addlinkedsrvlogin '14db','false',null,'sa','123456'



--查詢示例

select * from srv_lnk.數據庫名.dbo.表名


--導入示例

select * into 表 from srv_lnk.數據庫名.dbo.表名


--以后不再使用時刪除鏈接服務器

exec sp_dropserver 'srv_lnk','droplogins'

go

--下面的示例訪問來自某個表的數據,該表在 SQL Server 的另一個實例中。

SELECT *FROM OPENDATASOURCE('SQLOLEDB','Data Source=ServerName;User ID=MyUID;Password=MyPass').Northwind.dbo.Categories

--下面是個查詢的示例,它通過用於 Jet 的 OLE DB 提供程序查詢 Excel 電子表格。

SELECT *FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0','Data Source="c:Financeaccount.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...xactions


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM