SqlServer跨服务器查询解决方案

SqlServer跨服务器查询解决方案,第1张

概述OPENROWSET 包含访问 OLE DB 数据源中的远程数据所需的全部连接信息。当访问链接服务器中的表时,这种方法是一种替代方法,并且是一种使用 OLE DB 连接并访问远程数据的一次性的、特殊的方法。可以在查询的 FROM 子句中像引用表名那样引用 OPENROWSET 函数。依据 OLE DB 提供程序的能力,还可以将 OPENROWSET 函数引用为 INSERT、UPDATE 或 DE OPENROWSET
包含访问 olE DB 数据源中的远程数据所需的全部连接信息。当访问链接服务器中的表时,这种方法是一种替代方法,并且是一种使用 olE DB 连接并访问远程数据的一次性的、特殊的方法。可以在查询的 FROM 子句中像引用表名那样引用 OPENROWSET 函数。依据 olE DB 提供程序的能力,还可以将 OPENROWSET 函数引用为 INSERT、UPDATE 或 DELETE 语句的目标表。尽管查询可能返回多个结果集,然而 OPENROWSET 只返回第一个
 
语法
OPENROWSET ( 'provIDer_name'
   ,{ 'datasource' ; 'user_ID' ; 'password'
        | 'provIDer_string' }
        | 'query' } 
    ) 
参数
'provIDer_name'
字符串,它代表在注册表中指定的 olE DB 提供程序的友好名。provIDer_name 没有默认值。
'datasource'
字符串常量,它对应着某个特定的 olE DB 数据源。datasource 是将被传递到提供程序 IDBPropertIEs 接口以初始化提供程序的 DBPROP_INIT_DATASOURCE 属性。通常,这个字符串包含数据库文件的名称、数据库服务器的名称,或者提供程序能理解的用于查找数据库的名称。 
'user_ID'
字符串常量,它是传递到指定 olE DB 提供程序的用户名。user_ID 为连接指定安全上下文,并将它作为 DBPROP_AUTH_USERID 属性传递进来以初始化提供程序。
'password'
字符串常量,它是将被传递到 olE DB 提供程序的用户密码。当初始化提供程序时,将 password 作为 DBPROP_AUTH_PASSWORD 属性传递进来。
'provIDer_string'
提供程序特定的连接字符串,将它作为 DBPROP_INIT_PROVIDERSTRING 属性传递进来以初始化 olE DB 提供程序。通常 provIDer_string 封装初始化提供程序所需的所有连接信息。
catalog
目录或数据库的名称,其中驻留着指定的对象。
schema
架构的名称或指定对象的对象所有者名称。
object
对象名称,它唯一地标识出将要 *** 作的对象。
'query'
是字符串常量,发送到提供程序并由提供程序执行。Microsoft? sql Server? 不处理该查询,但处理由提供程序返回的查询结果(直接传递查询)。对于有些提供程序,它们并没有通过表名而是通过命令语言表现自己的表格格式数据,那么将直接传递查询用于这些提供程序是非常有用的。只要查询提供程序支持 olE DB Command 对象及其强制接口,那么在远程服务器上就支持直接传递查询。有关更多信息,请参见 sql Server olE DB 程序员参考。
示例:
USE pubs
GO
SELECT a.*
FROM OPENROWSET('sqlolEDB','seattle1';'sa';'MyPass',
   'SELECT * FROM pubs.dbo.authors ORDER BY au_lname,au_fname') AS a

GO


1.开通分布式查询权限

  exec sp_configure 'show advanced options',1       reconfigure      exec sp_configure 'Ad Hoc distributed QuerIEs',1       reconfigure   

2.查询

  select a.ProjCode as '楼盘编号',b.projname as '楼盘名称',count(1) as '房源量' from        openrowset( 'sqlolEDB ''IP地址(服务器名)''用户名''密码',[数据库名].[dbo].[表名]) a       , openrowset( 'sqlolEDB ',[数据库名].[dbo].[表名]) b       where a.ProjCode=b.newcode GROUP by   a.ProjCode ,b.projname order by  count(1) desc   

3.然后换城市,只需要改IP、 库名和表名了。

4.关闭

  exec sp_configure 'Ad Hoc distributed QuerIEs',0       reconfigure       exec sp_configure 'show advanced options',0       reconfigure  
总结

以上是内存溢出为你收集整理的SqlServer跨服务器查询解决方案全部内容,希望文章能够帮你解决SqlServer跨服务器查询解决方案所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1176011.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-02
下一篇 2022-06-02

发表评论

登录后才能评论

评论列表(0条)

保存