sqlserver 跨庫查詢1

2022-08-22 19:51:11 字數 2690 閱讀 9946

由於業務邏輯的多樣性

經常得在sql server中查詢不同資料庫中資料

這就產生了分布式查詢的需求

現我將開發中遇到的幾種查詢總結如下:

1.access版本

--建立連線伺服器

exec sp_addlinkedserver

--要建立的鏈結伺服器名稱 

'ai',            

--產品名稱              

'access',    

--ole db 字元

'microsoft.jet.oledb.4.0', 

--資料來源

--格式:

-- 碟符:\路徑\檔名

-- \\網路名\共享名\檔名  (網路版本)

'd:\testdb\db.mdb'

go--建立鏈結伺服器上遠端登入之間的對映

--鏈結伺服器預設設定為用登陸的上下文進行

--現在我們修改為連線鏈結伺服器不需使用任何登入或密碼

exec sp_addlinkedsrvlogin 'ai','false'

go--查詢資料

select * from ai...mytable

go2.excel版本

--建立連線伺服器

exec sp_addlinkedserver

--要建立的鏈結伺服器名稱 

'ai_ex',            

--產品名稱              

'ex',    

--ole db 字元

'microsoft.jet.oledb.4.0', 

--資料來源

--格式:

-- 碟符:\路徑\檔名

-- \\網路名\共享名\檔名  (網路版本)

'd:\testdb\mybook.xls' ,

null,

--ole db 提供程式特定的連線字串

'excel 5.0'

go----建立鏈結伺服器上遠端登入之間的對映

--鏈結伺服器預設設定為用登陸的上下文進行

--現在我們修改為連線鏈結伺服器不需使用任何登入或密碼

exec sp_addlinkedsrvlogin 'ai_ex','false'

go--查詢資料

select * from ai_ex...sheet3$

go3.ms sql版本

--建立連線伺服器

exec sp_addlinkedserver

--要建立的鏈結伺服器名稱 

'ai_mssql',            

--產品名稱              

'ms',    

--ole db 字元

'sqloledb', 

--資料來源

'218.204.111.111,3342'

go--建立鏈結伺服器上遠端登入之間的對映

exec sp_addlinkedsrvlogin

'ai_mssql',

'false',

null,

--遠端伺服器的登陸使用者名稱

'zhangzhe',

--遠端伺服器的登陸密碼

'fish2231'

go--查詢資料

select * from ai_mssql.pubs.dbo.jobs

go--還有乙個更簡單的辦法

--這種方式在鏈結伺服器建立後,它是預設開放rpc的

--建立連線伺服器

exec sp_addlinkedserver

--要建立的鏈結伺服器名稱

--這裡就用資料來源作名稱

'218.204.111.111,3342',

'sql server'

go--建立鏈結伺服器上遠端登入之間的對映

exec sp_addlinkedsrvlogin

'218.204.111.111,3342',

'false',

null,

--遠端伺服器的登陸使用者名稱

'zhangzhe',

--遠端伺服器的登陸密碼

'fish2231'

go--查詢資料

select * from [218.204.253.131,3342].pubs.dbo.jobs

go4.oracle版本

--建立連線伺服器

exec sp_addlinkedserver

--要建立的鏈結伺服器名稱 

'o',

--產品名稱              

'oracle',

--ole db 字元

'msdaora',

--資料來源

'acc'

go--建立鏈結伺服器上遠端登入之間的對映

exec sp_addlinkedsrvlogin

'o',

'false',

null,

--oracle伺服器的登陸使用者名稱

'f02m185',

--oracle伺服器的登陸密碼

'f02m185185'

go--查詢資料

--格式:linkserver..oracle使用者名稱.表名

--注意用大寫,因為在oracle的資料字典中為大寫

select * from o..f02m185.ai

go

SQLServer跨庫查詢

用openrowset連線遠端sql或插入資料 如果只是臨時訪問,可以直接用openrowset 查詢示例 select from openrowset sqloledb sql伺服器名 使用者名稱 密碼 資料庫名.dbo.表名 在跨庫查詢時需要啟用ad hoc distributed querie...

SQL Server跨庫查詢

方式一 語句select from 資料庫a.dbo.表a a,資料庫b.dbo.表b b where a.field b.field dbo 可以省略 如 select from 資料庫a.表a a,資料庫b.表b b where a.field b.field 方式二 在乙個資料庫掛上另乙個資料...

sql server跨庫查詢

方式一 dbo可以省略 select from 資料庫a.dbo.表a a,資料庫b.dbo.表b b where a.field b.field 方式二 在乙個資料庫掛上另乙個資料庫的外鏈 對映乙個遠端資料庫 exec sp addlinkedserver 遠端資料庫的ip或主機名 n sql s...