以下是代码片段:
-- 如果想使用分布式查询,必须先开通分布式查询 [外围配置 这点是所有查询操作前提] -- sp_configure--显示或更改当前服务器的全局配置设置 -- reconfigure 指定如果配置设置不需要服务器停止并重新启动,则更新当前运行的值 -- SQL2005默认是没有开启’Ad Hoc Distributed Queries’ 组件 -- 启用权限 exec sp_configure 'show advanced options',1 -- 显示高级配置 reconfigure -- 更新值 exec sp_configure 'Ad Hoc Distributed Queries',1 -- 启用分布式查询 reconfigure go -- 关闭分布式查询 exec sp_configure 'Ad Hoc Distributed Queries',0 reconfigure exec sp_configure 'show advanced options',0 reconfigure go -- 开启权限后 另外一种查询方式 -- 查询格式 SELECT * FROM OPENDATASOURCE( 'SQLOLEDB', 'Data Source=远程ip;User ID=sa;Password=密码' ).库名.dbo.表名 WHERE 条件 -- 需要开启权限 -- 开启权限 提示[远程的SqlServer不允许远程连接] select * from OPENDATASOURCE('SQLOLEDB','Data Source=192.168.10.67; User
如上我们首先清除已经可能创建服务器数据记录. 然后创建服务器连接.sp_addlinkedSrvlogin系统存储过程用来创建链接服务器上远程登录之间的映射 . 即我们可以详细设置本地与远程服务器详细的映射信息. 例如设置我们特定用户访问的用户名和密码.
查询数据
-- 查询指定用户Test数据 select * from [demodb].CustomerDB.dbo.Users -- [如上测试成功]
查询结果
指定用户Test对CustomerDB访问数据方式测试成功.
<3>问题排查与更多查询方式
当我们在实际编程中进行访问远程数据时 因为不同操作环境会引发各种各样的异常,如下我会提出一种常见的异常方式解决办法和关于远程数据操作更多查询方式.
<3.1>无法建立远程连接
其实这个问题在做分布式查询时极其常见. 而引起这个问题的因素过多. 我们一时无法判断真正引发这个异常地方. 只能通过逐个排查方式来进行设置:
出处:IT专家网
责任编辑:bluehearts
上一页 详解SQL Server分布式查询 [4] 下一页 详解SQL Server分布式查询 [6]
◎进入论坛网络编程版块参加讨论
|