由于公司的服务器突然从4台增加到了24台,原先需要数据需求,已经不能等到数据库备份还原了,但是要跨服提取数据,所以就做了一下工作
环境sql server2000
可以查看
select * from sysservers --查看当前值
Exec sp_helpserver --查看服务器信息这个比较重要
EXEC sp_addlinkedserver@server='JOY',--被访问的服务器别名(习惯上直接使用目标服务器IP,或取个别名如:JOY)
@srvproduct='',--可以不填内容
@provider='sqloledb',
@datasrc='127.0.0.1' --要访问的服务器
下面注意了
必须是上面的服务器别名
select * from JOY.[my_dance_ol].[dbo].member
之后要删除连接
--删除注册和连接
exec sp_droplinkedsrvlogin 'JOY',null
exec sp_dropserver 'JOY'
后来同事给我说了一下简单的方法
select B.* from OPENDATASOURCE(
'SQLOLEDB',
'Data Source=127.0.0.1;User ID=数据库用户名;Password=数据库密码'
).[服务器数据库名].[dbo].表
例如:
select B.* from OPENDATASOURCE(
'SQLOLEDB',
'Data Source=10.10.8.11;User ID=test;Password=mima'
).[my_dance_log_ol].[dbo].T_dance_Shop_Buy_Log a left join T_dance_User_item b on a.userindex=b.userindex where b.itemcode is null and a.logdate>'2015-1-22'