最近遇到一个case,需要一个SQL2000服务器直接使用另外一台的客户资料,则在本地建立一些客户表的对应,并取消表间的触发器(重要),然后用addlinkedserver注册远程服务器,使用很方便。
QQ群请加: 6539042(powerbuilder11&SQL)
*蓝色资料为我在网上找到的参考资料,最下面是我照作的结果。我的远程服务器在互联网上。
/*建立linked server用于远程访问
首先要打开你本地服务器和远程服务器的MSDTC:
开始-->Microsoft SQL Server-->服务管理器-->选择服务中的 Distributed Transaction Coordinator(此即DTC),点击“启动”按钮,启动MSDTC
打开以后,在本地服务器上注册远程服务器的信息,创建linkedServer,操作代码如下:
sp_addlinkedserver @server='GKSRV',@srvproduct='',@catalog='gk_2005',@provider='SQLOLEDB',
@provstr='DRIVER={SQL Server};Initial Catalog=gk_2005;SERVER=10.16.37.109;UID=admin;PWD=1234;'
其中@server名称随便取,@catalog为数据库名,@provider为数据库驱动,@provstr为连接字符串
然后使用sp_linkedservers,查看此服务器是否已经成功注册为链接服务器,如果已经注册成功,则使用
EXEC sp_addlinkedsrvlogin 'GKSRV','false',注册login帐号,然后你就可以执行一个Sql语句,试试看看是否可以从链接服务器中操作数据了,
例如:
select top 10 * from gksrv.gk_2005.dbo.ndy_Class
就是从刚才我设置的链接服务器GkSrv中的一个表:ndy_Class中查询数据。
备注:
1、关于链接服务器的详细情况请参阅联机丛书中的sp_addlinkedserver、 sp_addlinkedsrvlogin、sp_addserver、sp_dropserver、sp_serveroption、sp_linkedservers等系统级存储过程。
2、关于此链接服务器的创建及其使用在不同环境下(全部内网服务器、一内网一公网服务器、全公网服务器)测试,均告通过。
3、有时候在存储过程中访问链接服务器的时候可能会碰到如下的提示,必须要对ANSI warning 和ANSI nulls进行设置,这时候按照如下的方法进行设置:
置本地数据库的属性-->连接-->选上ANSI warning 和 ANSI nulls
如下执行OK
sp_dropserver kk_out
sp_addlinkedserver @server='kk_out',@srvproduct='',@catalog='kk',@provider='SQLOLEDB',
@provstr='DRIVER={SQL Server};Initial Catalog=kk;SERVER=10.0.0.1;PORT=8080;UID=sa;PWD=1;'
EXEC sp_addlinkedsrvlogin 'kk_out','false'
select top 10 * from kl_out.kk.dbo.a_cust_info
*/