今日產品部要導批資料,但是需要連線查詢查詢的幾個表不在同一伺服器上。所以我開始是這麼幹的:
1.查詢一台伺服器的資料,並匯入本地excel
2.查詢另一台伺服器的資料,並匯入本地excel
3.excle匯入資料庫,資料庫自帶了excel匯入資料庫的功能
4.連線查詢,over!
後來才知道產品部要全國50多個城市的資料
這時才想起跨庫查詢了。
1.開通分布式查詢許可權
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位址(伺服器名)'; '使用者名稱'; '密碼',[資料庫名].[dbo].[表名]) a
, openrowset( 'sqloledb ', 'ip位址(伺服器名)'; '使用者名稱'; '密碼',[資料庫名].[dbo].[表名]) b
where a.projcode=b.newcode group by a.projcode ,b.projname order by count(1) desc
3.然後換城市,只需要改ip、 庫名和表名了。
4.關閉
exec sp_configure 'ad hoc distributed queries',0
reconfigure
exec sp_configure 'show advanced options',0
reconfigure
sql跨庫查詢
方式一 使用連線伺服器 sp addlinkedserver mylink sqloledb local sp addlinkedsrvlogin mylink false null,sa sa select from mylink test.dbo.student 或者在 物件資源管理器 伺服器物...
Sql跨庫查詢
不使用鏈結的伺服器名,而提供特殊的連線資訊,並將其作為四部分物件名的一部分。語法opendatasource provider name,init string 引數provider name 註冊為用於訪問資料來源的 ole db 提供程式的 progid 的名稱。provider name 的資...
SQL語句跨表查詢
1.使用關鍵字 in select from bms dsl portconsumerbind a where consumerid in select consumerid from bms dsl consumerinfo b where b.name 空 or b.name 壞 2.使用關鍵字...