淺析如何實現(xiàn)SQL Server高效率跨服務(wù)器查詢
51CTO數(shù)據(jù)庫頻道向您推薦《SQL Server入門到精通》和《數(shù)據(jù)庫之索引與查詢專題》,希望能對您有所幫助。
今日產(chǎn)品部要導(dǎo)批數(shù)據(jù),但是需要連接查詢查詢的幾個表不在同一服務(wù)器上。所以我開始是這么干的:
1.查詢一臺服務(wù)器的數(shù)據(jù),并導(dǎo)入本地Excel
2.查詢另一臺服務(wù)器的數(shù)據(jù),并導(dǎo)入本地Excel
3.Excle導(dǎo)入數(shù)據(jù)庫,數(shù)據(jù)庫自帶了Excel導(dǎo)入數(shù)據(jù)庫的功能
4.連接查詢,OVER!
后來才知道產(chǎn)品部要全國50多個城市的數(shù)據(jù),所以每個城市的我都要重復(fù)這樣干一遍。
這時才想起跨庫查詢了。
1.開通分布式查詢權(quán)限
- exec sp_configure 'show advanced options',1
- reconfigure
- exec sp_configure 'Ad Hoc Distributed Queries',1
- reconfigure
2.查詢
- select a.ProjCode as '樓盤編號',b.projname as '樓盤名稱',count(1) as '房源量' from
- openrowset( 'SQLOLEDB ', 'IP地址(服務(wù)器名)'; '用戶名'; '密碼',[數(shù)據(jù)庫名].[dbo].[表名]) a
- , openrowset( 'SQLOLEDB ', 'IP地址(服務(wù)器名)'; '用戶名'; '密碼',[數(shù)據(jù)庫名].[dbo].[表名]) b
- where a.ProjCode=b.newcode GROUP by a.ProjCode ,b.projname order by count(1) desc
3.然后換城市,只需要改IP、 庫名和表名了。
4.關(guān)閉
- exec sp_configure 'Ad Hoc Distributed Queries',0
- reconfigure
- exec sp_configure 'show advanced options',0
- reconfigure