天天看點

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

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

同樣的在SQL Server2005中也可以連結到其他的SQL Server資料庫,并且通過Ole DB還可以連結到Oracle、Sybase等其他不同的資料庫,友善使用者的操作和維護。

在Microsoft SQL Server Management Studio的工具中提供了圖形界面的操作:

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

 不過其中的一些參數的填寫比較麻煩,我這裡就以連結SQL Server和Oracle為例說一下

(指令的方式,隻列出最簡單的指令,對一些可有可無的屬性的設定我把它去掉了)

1、連結SQL Server 資料庫

這個是相對簡單的。參見如下的sql語句

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

USE [master]

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

GO

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

EXEC master.dbo.sp_addlinkedserver @server = N'DBSERVER', @srvproduct=N'SQL Server'

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

EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname = N'DBSERVER', @locallogin = N'sa', @useself = N'False', @rmtuser = N'sa', @rmtpassword = N'1'

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

主要就是調用了兩個存儲過程:

sp_addlinkedserver是加入資料庫連結,其中server的參數是另外一台SQL Server伺服器的名稱

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

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

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

 select * from [DBSERVER].[helpdesk].[dbo].[Messages];

2、連結Oracle資料庫

要連結Oracle資料庫,首先要在本地安裝Oracle的用戶端,并且配置好Oracle的别名(别名的配置我這裡就不多說了,很簡單的)

然後同樣的調用上面的兩個存儲過程:

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

EXEC master.dbo.sp_addlinkedserver @server = N'GSPRING', @srvproduct=N'Oracle', @provider=N'MSDAORA', @datasrc=N'gspring'

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

EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname = N'GSPRING', @locallogin = N'sa', @useself = N'False', @rmtuser = N'user1', @rmtpassword = N'1'

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

其中server是連結資料庫的名稱,datasrc是本地配置的oracle的别名。

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

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

select * from [GSPRING]..[user1].[table1];

其中user1是table1表的owner

要注意的就是SqlServer中通路一張表的全路徑是四層,那麼通路oracle時對于沒有的要用一個空的.代替

其他:

1、本地配置的所有連結可以在sysservers表中查到:

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

select * from sys.sysservers;

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

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

CREATE SYNONYM [dbo].[linktable] FOR [DBSERVER].[helpdesk].[dbo].[Messages];

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

select * from linktable;

3、在配置oracle時如果出現其他錯誤,請參見微軟的解決方案(我配置過程中一個問題都沒有出現,難道是我RP太好了

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

    本文轉自永春部落格園部落格,原文連結:http://www.cnblogs.com/firstyi/archive/2007/08/09/849494.html,如需轉載請自行聯系原作者