-创建链接服务器
exec sp_addlinkedserver 'srv_lnk','','SQLOLEDB','远程服务器名或ip地址'
exec sp_addlinkedsrvlogin 'srv_lnk','false',null,'用户名','密码'
exec sp_serveroption 'srv_lnk','rpc out','true' --这个允许调用链接服务器上的存储过程
go
declare @id int
exec srv_lnk.qsoft2.dbo.ins 'people','mobile','1234567',@id=@id output
select * from openquery(linked_server_name,'select * from pocol')
select * from 链接服务器名.数据库名.dbo.表名
众所周知,在大型的数据库系统设计中,为了提升效率,不可避免的要将不用的业务放在不同的数据实例上,因此我们使用到了链接服务器,链接服务器为大家在不同的服务之间进行分布式数据操作提供了便利。本例子基于windows 2003操作系统,Sql server 2000(sp4)数据库。
首先要打开你本地服务器和远程服务器的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;'
然后使用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进行设置,这时候按照如下的方法进行设置:(如图)