在SQL Server下資料庫連結的使用

iSQlServer發表於2009-01-14
某些情況下:我們希望在一個 SQL Server 下訪問另一個 sqlserver 資料庫上的資料,或者訪問其他 Oracle 資料庫上的資料,要想完成這些操作,我們首要的是建立資料庫連結。

      資料庫連結能夠讓本地的一個 SQLserver 登入使用者對映到遠端的一個資料庫伺服器上,並且像操作本地資料庫一樣。那麼怎麼建立資料庫連結呢?我現在有兩種方法可以實現。

      第一種:在 SQL Server 企業管理器中,建立,這個比較簡單的,首先在 安全性--〉資料庫連結 上點右鍵,在出現的選單中點“新建資料庫連結”,然後會彈出一個介面,需要我們填寫的有:連結伺服器(這是一個名字,自己根據情況自行定義,以後就要通過他進行遠端訪問了),提供程式名稱(這個就是選擇資料驅動,根據資料庫型別來選擇,不能亂選,否則連結不上的),資料來源(對於 SQL Server 就是遠端資料庫伺服器的主機名或者IP,對於  oracle 就是在 Oracle net config 中配置的別名),安全上下文使用者和口令(也就是遠端伺服器的使用者和口令)。

      第二種:利用系統儲存過程

      建立一個 SQL Server 對 sqlserver 的資料庫連結:

      以下為引用的內容:

  exec sp_addlinkedserver 'link_northsnow','',
  'SQLOLEDB','遠端伺服器主機名或域名或ip地址'
  exec sp_addlinkedsrvlogin 'link_northsnow','
  false',null,'使用者名稱','使用者口令' 

      建立一個 SQL Server 對 Oracle 的資料庫連結:

      以下為引用的內容:

  exec sp_addlinkedserver 'link_ora', 'Oracle',
  'MSDAORA', 'Oracle 資料庫伺服器別名'
  exec sp_addlinkedsrvlogin 'link_ora',
  false, 'sa', '使用者名稱', '使用者口令'

      有了資料庫連結我們就可以使用了。對於 sqlserver 和 Oracle 中的使用方法是有區別的。
      對於 SQL Server:

      以下為引用的內容:

  create view v_lhsy_user as select *
  from link_northsnow.lhsy.dbo.sys_user
  select * from v_lhsy_user 

      其中 lhsy 為遠端的資料庫名

      sys_user 為表名

      對於 Oracle:

      以下為引用的內容:
  create view vvv as select * from
  link_ora..NORTHSNOW.SYS_USER
  select * from vvv; 

      其中 northsnow 為遠端 Oracle 資料庫伺服器的一個使用者名稱,SYS_USER 為該使用者在該伺服器上的一個表,要非常注意的是:資料庫連結(link_ora)後面有兩個點(..),再往後面必須全部大寫,查詢的物件一般為表格或者檢視,不能查詢同義詞。

      要想刪除資料庫連結,也有兩種方法,一種方法是在企業管理器中操作。另一種是用系統儲存過程:

      exec sp_dropserver

      資料庫連結名稱,'droplogins' 。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16436858/viewspace-539627/,如需轉載,請註明出處,否則將追究法律責任。

相關文章