在sql server 2005下面有個兩個儲存過程用於可用於通過sql語句來新增鏈結伺服器。
1、新增鏈結伺服器
[sp_addlinkedserver]
@server sysname, -- server name 鏈結伺服器
@srvproduct nvarchar(128) = null, -- product name (dflt to ss) 產品名稱
@provider nvarchar(128) = null, -- oledb provider name 訪問介面
@datasrc nvarchar(4000) = null, -- oledb datasource property資料來源
@location nvarchar(4000) = null, -- oledb location property位置
@provstr nvarchar(4000) = null, -- oledb provider-string property訪問介面字串
@catalog sysname = null -- oledb catalog property目錄
2、配置鏈結伺服器登入資訊
[sp_addlinkedsrvlogin]
@rmtsrvname sysname, --鏈結伺服器名稱
@useself varchar(8) = 'true',--是否模擬
@locallogin sysname = null, --本地登入
@rmtuser sysname = null, --連線賬號
@rmtpassword sysname = null --連線密碼
一、連線access資料庫
1、新增鏈結
a、使用可視介面
b、使用儲存過程
exec sp_addlinkedserver
@server = 'accesslink',
@provider = 'microsoft.jet.oledb.4.0',
@srvproduct = 'ole db provider for jet',
@datasrc = 'e:\test.mdb'
如果access資料庫帶密碼,則需要在@provstr的地方加入密碼的設定
exec sp_addlinkedserver
@server = 'testlink',
@provider = 'microsoft.jet.oledb.4.0',
@srvproduct = 'ole db provider for jet',
@datasrc = 'e:\depodog.mdb',
@provstr = ';pwd=bluesky'
新增完成之後可以在sql server 2005裡看到access的表、檢視等
2、操作表資料
select * from accesslink...weborder --注意是三個.
二、鏈結sql server資料庫
1、新增鏈結
a、使用可視介面
然後在安全性的地方設定一下「使用此安全上下文建立連線」,輸入訪問的賬號和密碼
b、使用 odbc 的 microsoft ole db 提供程式
[sp_addlinkedserver]
@server='testdb',
@srvproduct= '',
@provider='msdasql',
@datasrc = null,
@location = null,
@provstr ='driver=;server=192.168.5.210;uid=test;pwd=12345',
@catalog = null
c、使用sql server 的 microsoft ole db 提供程式
[sp_addlinkedserver]
@server='testdb',
@srvproduct= '',
@provider='sqloledb',
@datasrc = '192.168.5.210',
@location = null,
@provstr =null,
@catalog = null
[sp_addlinkedsrvlogin]
@rmtsrvname ='testdb',
@useself = 'false',
@locallogin = null,
@rmtuser = 'test',
@rmtpassword = 'test'
--特別注意@locallogin的設定,一旦設定了使用者,其他使用者或者windows身份驗證都無法使用這個鏈結伺服器,必須是這個使用者登陸才能使用連線伺服器。
2、操作表資料
select * from 別名.庫名.dbo.表名
insert 庫名.dbo.表名 select * from 別名.庫名.dbo.表名
select * into 庫名.dbo.新錶名 from 別名.庫名.dbo.表名
以上部分是通過測試的,以下部分只是複製過來的,沒有驗證過,有時間再驗證
三、使用 microsoft ole db provider for odbc 鏈結mysql
安裝mysql的odbc驅動myodbc
1、為mysql建立乙個odbc系統資料來源,例如:選擇資料庫為test ,資料來源名稱為mydsn
2、建立鏈結資料庫
exec sp_addlinkedserver @server = 'mysqltest', @srvproduct='mysql',@provider = 'msdasql', @datasrc = 'mydsn'
goexec sp_addlinkedsrvlogin @rmtsrvname='mysqltest',@useself='false',@locallogin='sa',@rmtuser='mysql 的使用者名稱',@rmtpassword='mysql的密碼'
3、查詢資料
select * from openquery (mysqltest ,'select * from 表' )
下面這個不行:
select * from openquery (mysqltest ,'表' )
四部分名稱查詢資料,可能是個bug.
四、使用 microsoft ole db provider for oracle 鏈結oracle
1、建立鏈結資料庫
sp_addlinkedserver '別名', 'oracle', 'msdaora', '服務名'
goexec sp_addlinkedsrvlogin @rmtsrvname='別名',@useself='false',@locallogin='sa',@rmtuser='oracle使用者名稱',@rmtpassword='密碼'
2、查詢資料
select * from 別名..使用者名稱.表(檢視)
注意:四部分名稱全部用大寫
3、執行儲存過程
使用openquery: select * from openquery(別名, 'exec 使用者名稱.儲存過程名')
五、連線sybase
--首先,你要在sql伺服器上裝上訪問sybase的客戶端
--建立鏈結伺服器
exec sp_addlinkedserver 'sybase1', ' ', 'msdasql', null, null
,'driver=;database=hisdb;srvr=10.211.135.12;uid=sa;pwd=1111;'
使用:select * from sybase1.hisdb.dbo.table1
方法二使用odbc
sql server到sybase連線伺服器的實現
Sql Server使用鏈結伺服器遠端取資料
由於最近開發的乙個查詢系統,基本是在其它伺服器的,所以在本地伺服器設計了中間,用來存從遠端伺服器取資料 一種方法是通過,opendatasource來遠端讀取資料 from opendatasource sqloledb data source servername user id myuid pa...
Sql Server使用鏈結伺服器遠端取資料
由於最近開發的乙個查詢系統,基本是在其它伺服器的,所以在本地伺服器設計了中間,用來存從遠端伺服器取資料 一種方法是通過,opendatasource來遠端讀取資料 select from opendatasource sqloledb data source servername user id m...
SQLServer建立鏈結伺服器
use master go 新增伺服器 exec sp addlinkedserver server hang 此名字可以隨便取 srvproduct sql provider sqloledb datasrc 10.130.26.x 說明 另外一台伺服器的ip go 登陸伺服器 exec sp a...