由於最近開發的一個查詢系統,基本是在其它服務器的,所以在本地服務器設計了中間,用來存從遠程服務器取數據!
一種方法是通過,OPENDATASOURCE來遠程讀取數據!
SELECT *
FROM OPENDATASOURCE(
'SQLOLEDB',
'Data Source=ServerName;User ID=MyUID;Password=MyPass'
).Northwind.dbo.Categories
但是遠程的服務器不能確認,比較麻煩,如果要實現,只有把連接信息保存到服務器,通過動態SQL(EXEC或sp_excute_sql來達到目的)。
另一種方法就是添加鏈接服務器。
sp_addlinkedserver @server = N'鏈接服務器名',
@srvproduct = N' ',
@provider = N'SQLOLEDB',
@datasrc = N'遠程服務器IP',
添加鏈接服務器登錄:
sp_addlinkedsrvlogin
[ @rmtsrvname = ] '鏈接服務器名'
[ , [ @useself = ] 'false' ]
[ ,[ @locallogin = ] '本地登錄名' ]
[ , [ @rmtuser = ] '遠程登錄名' ]
[ , [ @rmtpassword = ] '遠程密碼' ]
這樣訪問遠程服務器的就可以通過SQL:
select * from 鏈接服務器名.遠程數據名.遠程所有者.遠程表名
不用管遠程服務器的地址及登錄名,只能鏈接服務器名。