在實際應用中經常碰到要對兩個資料庫(不在同一臺主機上)進行關聯操作,在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...