Sql 分布式查询格式资料
由于业务逻辑的多样性经常得在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 .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','';'';'',{object|'query'})
OPENROWSET('SQLOLEDB','ServerName=;PWD=;Database=',{object|'query'})
OPENDATASOURCE('SQLOLEDB','Data Source=;User ID=;Password=;Database=')
--使用Windows身份验证
OPENROWSET('SQLOLEDB','ServerName=',{object|'query'})
OPENDATASOURCE('SQLOLEDB','Data Source=;Integrated Security=SSPI;Database=')
--Sybase
OPENROWSET('MSDASQL','Driver={Sybase System 11};Srvr=;Database=;UID=;PWD=',{object|'query'})
OPENDATASOURCE('MSDASQL','Driver={Sybase System 11};Srvr=;Database=;UID=;PWD=')
--ACCESS
OPENROWSET('Microsoft.Jet.OLEDB.4.0','/';'admin';'',{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=/',{object|'query'})
OPENDATASOURCE('MICROSOFT.JET.OLEDB.4.0','Excel 8.0;DATABASE=/')
--Text
OPENROWSET('MICROSOFT.JET.OLEDB.4.0','Text;DATABASE=',{object|'query'})
OPENDATASOURCE('MICROSOFT.JET.OLEDB.4.0','Text;DATABASE=')
--dBase
OPENROWSET('MICROSOFT.JET.OLEDB.4.0','dBase 5.0;DATABASE=',{object|'query'})
OPENDATASOURCE('MICROSOFT.JET.OLEDB.4.0','dBase 5.0;DATABASE=')
--Html
OPENROWSET('MICROSOFT.JET.OLEDB.4.0','HTML Import;DATABASE=',{object|'query'})
OPENDATASOURCE('MICROSOFT.JET.OLEDB.4.0','HTML Import;DATABASE=')
--Paradox
OPENROWSET('MICROSOFT.JET.OLEDB.4.0','Paradox 5.x;DATABASE=',{object|'query'})
OPENDATASOURCE('MICROSOFT.JET.OLEDB.4.0','Paradox 5.x;DATABASE=')
--VFP
OPENROWSET('MSDASQL','Driver={Microsoft Visual FoxPro Driver};SourceType=DBF;SourceDB=',{object|'query'})
--ODBC系统DSN
OPENROWSET('MSDASQL','';'';'',{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]