由于最近开发的一个查询系统,基本是在其它服务器的,所以在本地服务器设计了中间,用来存从远程服务器取数据!
一种方法是通过,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
链接服务器名.远程数据名.远程所有者.远程表名
不用管远程服务器的地址所登录名,只能链接服务器名,不变,正式发装时,不能修改程序!