SQL Server鏈結其他資料庫伺服器的方法

2021-04-25 01:40:32 字數 1838 閱讀 1685

在實際應用中經常碰到要對兩個資料庫(不在同一臺主機上)進行關聯操作,在oracle中提供了這種機制,可以鏈結其他主機上的oracle資料庫。

同樣的在sql server2005中也可以鏈結到其他的sql server資料庫,並且通過ole db還可以鏈結到oracle、sybase等其他不同的資料庫,方便使用者的操作和維護。

在microsoft sql server management studio的工具中提供了圖形介面的操作:

use [master]

goexec master.dbo.sp_addlinkedserver @server =n

'dbserver

', @srvproduct=n

'sql server

'gouse [master]

goexec master.dbo.sp_addlinkedsrvlogin @rmtsrvname =n

'dbserver

', @locallogin =n

'sa', @useself =n

'false

', @rmtuser =n

'sa', @rmtpassword =n

'1'go

主要就是呼叫了兩個儲存過程:

sp_addlinkedserver是加入資料庫鏈結,其中server的引數是另外一台sql server伺服器的名稱

sp_addlinkedsrvlogin是加入對應的遠端資料庫的使用者名稱,rmtuser和rmtpassword是遠端資料庫的使用者名稱和密碼

下面就可以直接在本地查詢遠端資料庫的表了:

select 

*from [dbserver].[helpdesk].[dbo].[messages];

2、鏈結oracle資料庫use [master]

goexec master.dbo.sp_addlinkedserver @server =n

'gspring

', @srvproduct=n

'oracle

', @provider=n

'msdaora

', @datasrc=n

'gspring

'gouse [master]

goexec master.dbo.sp_addlinkedsrvlogin @rmtsrvname =n

'gspring

', @locallogin =n

'sa', @useself =n

'false

', @rmtuser =n

'user1

', @rmtpassword =n

'1'go

select 

*from [gspring]..[user1].[table1];

其中user1是table1表的owner

要注意的就是sqlserver中訪問一張表的全路徑是四層,那麼訪問oracle時對於沒有的要用乙個空的.代替

其他:select 

*from sys.sysservers;

2、訪問遠端資料庫表時也可以先在本地建乙個同義詞,然後就可以像在本地一樣的訪問了:

use [master]

gocreate synonym [dbo].[linktable] for [dbserver].[helpdesk].[dbo].[messages];

goselect 

*from linktable;

3、在配置oracle時如果出現其他錯誤,請參見微軟的解決方案

SqlServer中鏈結其他資料庫

如果經常訪問或資料量大,建議用鏈結伺服器 建立鏈結伺服器 exec sp addlinkedserver srv lnk sqloledb 遠端伺服器名或ip位址 exec sp addlinkedsrvlogin srv lnk false null,使用者名稱 密碼 go 查詢示例 select...

WinForm鏈結SQLServer資料庫

a window身份 string connstr data source initial catalog 資料庫名 integrated security true b sql身份賬號密碼 string connstr data source initial catalog 資料庫名 user i...

MFC 中ADO鏈結sql server 資料庫

一.mfc中ado鏈結資料庫通常有四個步驟 1 引入ado檔案 2 初始化ole com庫檔案 3 利用connection物件連線資料 4 利用建立好的鏈結,通過connection,command物件執行sql命令,或者利用recordset物件取得結果進行查詢和處理 1.引入ado檔案 imp...