设为首页 收藏本站
查看: 1044|回复: 0

[经验分享] Sql 分布式查询格式资料

[复制链接]

尚未签到

发表于 2016-11-11 09:38:54 | 显示全部楼层 |阅读模式
由于业务逻辑的多样性
经常得在sql server中查询不同数据库中数据
这就产生了分布式查询的需求
现我将开发中遇到的几种查询总结如下:
<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

1.access版本

--建立连接服务器
EXEC sp_addlinkedserver
--要创建的链接服务器名称
'ai',
--产品名称
'access',
--OLE DB 字符
'Microsoft.Jet.OLEDB.4.0',
--数据源
--格式:
-- 盘符:/路径/文件名
-- //网络名/共享名/文件名 (网络版本)
'd:/testdb/db.mdb'
GO


--创建链接服务器上远程登录之间的映射
--链接服务器默认设置为用登陆的上下文进行
--现在我们修改为连接链接服务器不需使用任何登录或密码
exec sp_addlinkedsrvlogin 'ai','false'
go


--查询数据
select * from ai...mytable
go


2.excel版本

--建立连接服务器
EXEC sp_addlinkedserver
--要创建的链接服务器名称
'ai_ex',
--产品名称
'ex',
--OLE DB 字符
'Microsoft.Jet.OLEDB.4.0',
--数据源
--格式:
-- 盘符:/路径/文件名
-- //网络名/共享名/文件名 (网络版本)
'd:/testdb/mybook.xls' ,
null,
--OLE DB 提供程序特定的连接字符串
'Excel 5.0'
GO


----创建链接服务器上远程登录之间的映射
--链接服务器默认设置为用登陆的上下文进行
--现在我们修改为连接链接服务器不需使用任何登录或密码
exec sp_addlinkedsrvlogin 'ai_ex','false'
go


--查询数据
select * from ai_ex...sheet3$
go


3.ms sql版本

--建立连接服务器
EXEC sp_addlinkedserver
--要创建的链接服务器名称
'ai_mssql',
--产品名称
'ms',
--OLE DB 字符
'SQLOLEDB',
--数据源
'218.204.111.111,3342'
GO


--创建链接服务器上远程登录之间的映射
EXEC sp_addlinkedsrvlogin
'ai_mssql',
'false',
NULL,
--远程服务器的登陆用户名
'zhangzhe',
--远程服务器的登陆密码
'fish2231'
go


--查询数据
select * from ai_mssql.pubs.dbo.jobs
go


--还有一个更简单的办法
--这种方式在链接服务器建立后,它是默认开放RPC的

--建立连接服务器
EXEC sp_addlinkedserver
--要创建的链接服务器名称
--这里就用数据源作名称
'218.204.111.111,3342',
'SQL Server'
GO


--创建链接服务器上远程登录之间的映射
EXEC sp_addlinkedsrvlogin
'218.204.111.111,3342',
'false',
NULL,
--远程服务器的登陆用户名
'zhangzhe',
--远程服务器的登陆密码
'fish2231'
go


--查询数据
select * from [218.204.253.131,3342].pubs.dbo.jobs
go


4.Oracle版本

--建立连接服务器
EXEC sp_addlinkedserver
--要创建的链接服务器名称
'o',
--产品名称
'Oracle',
--OLE DB 字符
'MSDAORA',
--数据源
'acc'
GO


--创建链接服务器上远程登录之间的映射
EXEC sp_addlinkedsrvlogin
'o',
'false',
NULL,
--Oracle服务器的登陆用户名
'F<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" /><chmetcnv w:st="on" tcsc="0" numbertype="1" negative="False" hasspace="False" sourcevalue="2" unitname="m">02M</chmetcnv>185',
--Oracle服务器的登陆密码
'f<chmetcnv w:st="on" tcsc="0" numbertype="1" negative="False" hasspace="False" sourcevalue="2" unitname="m">02m</chmetcnv>185185'
go

--查询数据
--格式:LinkServer..Oracle用户名.表名
--注意用大写,因为在Oracle的数据字典中为大写
select * from o..F<chmetcnv w:st="on" tcsc="0" numbertype="1" negative="False" hasspace="False" sourcevalue="2" unitname="m">02M</chmetcnv>185.AI
go




T-SQL汇总:访问外部数据源两种T-SQL方法
/*================================================================*/
/*== ==*/
/*== 模板关键字说明 ==*/
/*== ==*/
/*================================================================*/
链接服务器名
要访问的服务器名。例如,对于SQL Server数据库而言是实例名,对于ORACLE数据库而言是SQL*Net别名
访问OLE DB数据源的用户名
访问OLE DB数据源的用户密码
要访问的数据库名
访问外部数据文件时,数据文件所在的目录
访问外部数据文件时,数据文件的文件名
SQL Server服务器操作系统数据源(ODBC),【系统DSN】中创建的系统DSN
SQL Server服务器操作系统数据源(ODBC),【驱动程序】中列出的,当前操作系统安装的ODBC驱动程序名称
/*================================================================*/
/*== ==*/
/*== 使用链接服务器访问OLE DB数据源 ==*/
/*== ==*/
/*================================================================*/
--SQL Server
EXEC sp_addlinkedserver
@server = '',
@provider='SQLOLEDB',
@datasrc=''

EXEC sp_addlinkedserver
@server = ''

EXEC sp_addlinkedserver
@server = '',
@srvproduct = '',
@provider = 'MSDASQL',
@provstr = 'DRIVER={SQL Server};SERVER=;UID=;PWD=;Database='

--Oracle
EXEC sp_addlinkedserver
@server = '',
@srvproduct = 'Oracle',
@provider = 'MSDAORA',
@datasrc = ''

--Sybase
EXEC sp_addlinkedserver
@server = '',
@srvproduct = '',
@provider = 'MSDASQL',
@provstr = 'Driver={Sybase System 11};Database=;Srvr=;UID=;PWD=;'

--ACCESS
EXEC sp_addlinkedserver
@server = '',
@provider = 'Microsoft.Jet.OLEDB.4.0',
@srvproduct = 'OLE DB Provider for Jet',
@datasrc = '/',
@provstr = ';pwd='

--Excel
EXEC sp_addlinkedserver
@server = '',
@srvproduct = 'Jet 4.0',
@provider = 'MICROSOFT.JET.OLEDB.4.0',
@datasrc = '/',
@provstr = 'Excel 8.0'

--Text
EXEC sp_addlinkedserver
@server = '',
@srvproduct = 'Jet 4.0',
@provider = 'MICROSOFT.JET.OLEDB.4.0',
@datasrc = '',
@provstr = 'Text'

--dBase
EXEC sp_addlinkedserver
@server = '',
@srvproduct = 'Jet 4.0',
@provider = 'MICROSOFT.JET.OLEDB.4.0',
@datasrc = '',
@provstr = 'dBase 5.0'

--Html
EXEC sp_addlinkedserver
@server = '',
@srvproduct = 'Jet 4.0',
@provider = 'MICROSOFT.JET.OLEDB.4.0',
@datasrc = '/',
@provstr = 'HTML Import'

--Paradox
EXEC sp_addlinkedserver
@server = '',
@srvproduct = 'Jet 4.0',
@provider = 'MICROSOFT.JET.OLEDB.4.0',
@datasrc = '',
@provstr = 'Paradox 5.x'

--VFP
EXEC sp_addlinkedserver
@server = '',
@srvproduct = '',
@provider='MSDASQL',
@provstr='Driver={Microsoft Visual FoxPro Driver};SourceType=DBF;SourceDB='
--ODBC系统DSN
EXEC sp_addlinkedserver
@server = '',
@srvproduct = '',
@provider='MSDASQL',
@datasrc=''
--ODBC驱动程序(针对文件型数据库)
EXEC sp_addlinkedserver
@server = '',
@srvproduct = '',
@provider='MSDASQL',
@provstr='Driver={};DefaultDir=|/'
--ODBC驱动程序(针对服务型数据库)
EXEC sp_addlinkedserver
@server = '',
@srvproduct = '',
@provider='MSDASQL',
@provstr='Driver={};Server=;UID=;PWD='
/*================================================================*/
/*== ==*/
/*== 使用OPENROWSET或者OPENDATASOURCE访问OLE DB数据源 ==*/
/*== ==*/
/*================================================================*/
--SQL Server
--使用SQL Server身份验证
OPENROWSET('SQLOLEDB','';'';'',{[catalog.][schema.]object|'query'})
OPENROWSET('SQLOLEDB','ServerName=;PWD=;Database=',{[catalog.][schema.]object|'query'})
OPENDATASOURCE('SQLOLEDB','Data Source=;User ID=;Password=;Database=')
--使用Windows身份验证
OPENROWSET('SQLOLEDB','ServerName=',{[catalog.][schema.]object|'query'})
OPENDATASOURCE('SQLOLEDB','Data Source=;Integrated Security=SSPI;Database=')
--Sybase
OPENROWSET('MSDASQL','Driver={Sybase System 11};Srvr=;Database=;UID=;PWD=',{[catalog.][schema.]object|'query'})
OPENDATASOURCE('MSDASQL','Driver={Sybase System 11};Srvr=;Database=;UID=;PWD=')
--ACCESS
OPENROWSET('Microsoft.Jet.OLEDB.4.0','/';'admin';'',{[catalog.][schema.]object|'query'})
OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0','Data Source="/";Jet OLEDB:Database Password=')
--Excel
OPENROWSET('MICROSOFT.JET.OLEDB.4.0','Excel 8.0;DATABASE=/',{[catalog.][schema.]object|'query'})
OPENDATASOURCE('MICROSOFT.JET.OLEDB.4.0','Excel 8.0;DATABASE=/')
--Text
OPENROWSET('MICROSOFT.JET.OLEDB.4.0','Text;DATABASE=',{[catalog.][schema.]object|'query'})
OPENDATASOURCE('MICROSOFT.JET.OLEDB.4.0','Text;DATABASE=')
--dBase
OPENROWSET('MICROSOFT.JET.OLEDB.4.0','dBase 5.0;DATABASE=',{[catalog.][schema.]object|'query'})
OPENDATASOURCE('MICROSOFT.JET.OLEDB.4.0','dBase 5.0;DATABASE=')
--Html
OPENROWSET('MICROSOFT.JET.OLEDB.4.0','HTML Import;DATABASE=',{[catalog.][schema.]object|'query'})
OPENDATASOURCE('MICROSOFT.JET.OLEDB.4.0','HTML Import;DATABASE=')

--Paradox
OPENROWSET('MICROSOFT.JET.OLEDB.4.0','Paradox 5.x;DATABASE=',{[catalog.][schema.]object|'query'})
OPENDATASOURCE('MICROSOFT.JET.OLEDB.4.0','Paradox 5.x;DATABASE=')

--VFP
OPENROWSET('MSDASQL','Driver={Microsoft Visual FoxPro Driver};SourceType=DBF;SourceDB=',{[catalog.][schema.]object|'query'})
--ODBC系统DSN
OPENROWSET('MSDASQL','';'';'',{[catalog.][schema.]object|'query'})
OPENDATASOURCE('MSDASQL','Driver={};Server=')
--ODBC驱动程序(针对文件型数据库)
OPENROWSET('MSDASQL','Driver={};DefaultDir=|/','query')
--ODBC驱动程序(针对服务型数据库)
OPENDATASOURCE('MSDASQL','Driver={};Server=;UID=;PWD=')

本文来自: 爱派论坛(Bbs.everp.CoM) 详细出处参考:http://bbs.everp.com/thread-816-1-1.html

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-298753-1-1.html 上篇帖子: SQL注入漏洞与参数化查询 下篇帖子: sql语句备忘(dba)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表