Sql 分布式查询格式资料

本文总结了在SQLServer中实现跨库查询的方法,包括Access、Excel、MS SQL Server及Oracle等不同数据库间的连接配置与数据查询过程。

由于业务逻辑的多样性

经常得在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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值