当前位置: 首页 > 图文教程 > 数据库 > MSSQL > 使用Sql server进行分布式查询

MSSQL
如何取得一个表的所有字段名用逗号分割
Sql Server下数据库链接的使用方法
修改SQL SERVER内置存储过程
oracle中解决汉字无法显示、输入问题
两台SQL Server数据同步解决方案
SQL服务器内存有两种基本管理方法:动态分配和静态分配
SQL Server里函数的两种用法(可以代替游标)
sql server的cube操作符使用详解
SQL中HAVING从句的用法
使用T_SQL脚本创建SQLServer2000后台计划作业任务
SQL Server中合并用户日志表的方法
SQL Server 本机 Web 服务的使用方案
Windows XP下安装SQL2000企业版
三步堵死SQL注入漏洞
HOW TO:使用 Osql 工具管理 SQL Server 桌面引擎 (MSDE 2000
如何获取SQL Server数据库里表的占用容量大小
查询表主键外键信息的SQL
SQL Server根据查询结果,生成XML文件
SQL Server2005 Analysis服务实践之起步
关于对sql2000查询结果进行相关度排序的测试

MSSQL 中的 使用Sql server进行分布式查询


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-30   浏览: 81 ::
收藏到网摘: n/a

可以使用sql-server企业管理器进行建立,注意其中的rpc及rpc out两项,也可以使用sql语句来完成定义,主要涉及到三个存储过程
sp_addlinkedserver,sp_serveroption和sp_addlinkedsrvlogin,以下是三个存储过程的语法:
sp_addlinkedserver
创建一个链接的服务器,使其允许对分布式的、针对 OLE DB 数据源的异类查询进行访问。在使用 sp_addlinkedserver 创建链接的服务器之后,此服务器就可以执行分布式查询。如果链接服务器定义为 Microsoft® SQL Server™,则可执行远程存储过程。
语法
sp_addlinkedserver [ @server = ] ’server’
    [ , [ @srvproduct = ] ’product_name’ ]
    [ , [ @provider = ] ’provider_name’ ]
    [ , [ @datasrc = ] ’data_source’ ]
    [ , [ @location = ] ’location’ ]
    [ , [ @provstr = ] ’provider_string’ ]
    [ , [ @catalog = ] ’catalog’ ]
例如:
 sp_addlinkedserver ’ServerName’,’’,’SQLOLEDB’,’dbconn’,null,’driver={sql server};server=192.168.1.181;uid=sa,pwd=;’
此处ServerName为自定义名称,dbconn为定义的odbc数据源
一般使用的参数如下:
@server “LINKED SERVER”
@srvproduct “Product name”
@provider “Provider”
@datasrc “Data source”

二、设置服务器选项
使用 sp_serveroption 过程,所要使用的参数如下:
@server “Linked server” 
@optname “RPC”或“RPC OUT”
@optvalue True 或 False

三、添加Login
使用 sp_addlinkedsrvlogin 过程,所要使用的参数如下:
@rmtsrvname “Linked server”
@useself True 或 False
@locallogin 本地LOGIN
@rmtuser 远程用户 
@rmtpassword 远程用户口令

全部完整的示例如下:
EXEC sp_addlinkedserver ’test’,’’,’SQLOLEDB’,’test’,null,’driver={sql server};server=ipaddress;uid=sa,pwd=;’
exec sp_serveroption N’test’, N’rpc out’, N’true’ 
exec sp_serveroption N’test’, N’rpc’, N’true’
exec sp_addlinkedsrvlogin ’test’,’False’,null,’sa’,’’
访问可以使用如下语句:select * from test.pubs.dbo.tb_maintab
以上在windows2000,sql-server2000测试通过