如何用SQL 建立与其他数据源的连接

解决方案 »

  1.   

    SELECT * INTO XLImport3 FROM OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0',
    'Data Source=C:\test\xltest.xls;Extended Properties=Excel 8.0')...[Customers$]SELECT * INTO XLImport4 FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',
    'Excel 8.0;Database=C:\test\xltest.xls', [Customers$])SELECT * INTO XLImport5 FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',
    'Excel 8.0;Database=C:\test\xltest.xls', 'SELECT * FROM [Customers$]')
      

  2.   

    不同服务器数据库之间的数据操作--创建链接服务器 
    exec sp_addlinkedserver   'ITSV ', ' ', 'SQLOLEDB ', '远程服务器名或ip地址 ' 
    exec sp_addlinkedsrvlogin  'ITSV ', 'false ',null, '用户名 ', '密码 ' --查询示例 
    select * from ITSV.数据库名.dbo.表名 --导入示例 
    select * into 表 from ITSV.数据库名.dbo.表名 --以后不再使用时删除链接服务器 
    exec sp_dropserver  'ITSV ', 'droplogins ' --连接远程/局域网数据(openrowset/openquery/opendatasource) 
    --1、openrowset --查询示例 
    select * from openrowset( 'SQLOLEDB ', 'sql服务器名 '; '用户名 '; '密码 ',数据库名.dbo.表名) --生成本地表 
    select * into 表 from openrowset( 'SQLOLEDB ', 'sql服务器名 '; '用户名 '; '密码 ',数据库名.dbo.表名) --把本地表导入远程表 
    insert openrowset( 'SQLOLEDB ', 'sql服务器名 '; '用户名 '; '密码 ',数据库名.dbo.表名) 
    select *from 本地表 --更新本地表 
    update b 
    set b.列A=a.列A 
     from openrowset( 'SQLOLEDB ', 'sql服务器名 '; '用户名 '; '密码 ',数据库名.dbo.表名)as a inner join 本地表 b 
    on a.column1=b.column1 --openquery用法需要创建一个连接 --首先创建一个连接创建链接服务器 
    exec sp_addlinkedserver   'ITSV ', ' ', 'SQLOLEDB ', '远程服务器名或ip地址 ' 
    --查询 
    select * 
    FROM openquery(ITSV,  'SELECT *  FROM 数据库.dbo.表名 ') 
    --把本地表导入远程表 
    insert openquery(ITSV,  'SELECT *  FROM 数据库.dbo.表名 ') 
    select * from 本地表 
    --更新本地表 
    update b 
    set b.列B=a.列B 
    FROM openquery(ITSV,  'SELECT * FROM 数据库.dbo.表名 ') as a  
    inner join 本地表 b on a.列A=b.列A --3、opendatasource/openrowset 
    SELECT   * 
    FROM   opendatasource( 'SQLOLEDB ',  'Data Source=ip/ServerName;User ID=登陆名;Password=密码 ' ).test.dbo.roy_ta 
    --把本地表导入远程表 
    insert opendatasource( 'SQLOLEDB ',  'Data Source=ip/ServerName;User ID=登陆名;Password=密码 ').数据库.dbo.表名 
    select * from
      

  3.   

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

    EXEC sp_addlinkedserver 
    @server = '<ServerName>'

    EXEC sp_addlinkedserver 
    @server = '<LinkedServerName>', 
    @srvproduct = '',
    @provider = 'MSDASQL',
    @provstr = 'DRIVER={SQL Server};SERVER=<ServerName>;UID=<UserName>;PWD=<Password>;Database=<DatabaseName>'

    --Oracle
    EXEC sp_addlinkedserver
    @server = '<LinkedServerName>',
    @srvproduct = 'Oracle',
    @provider = 'MSDAORA',
    @datasrc = '<ServerName>'

    --Sybase
    EXEC sp_addlinkedserver 
    @server = '<LinkedServerName>',
    @srvproduct = '', 
    @provider = 'MSDASQL', 
    @provstr = 'Driver={Sybase System 11};Database=<DatabaseName>;Srvr=<ServerName>;UID=<UserName>;PWD=<Password>;'

    --ACCESS
    EXEC sp_addlinkedserver 
    @server = '<LinkedServerName>', 
    @provider = 'Microsoft.Jet.OLEDB.4.0', 
    @srvproduct = 'OLE DB Provider for Jet',
    @datasrc = '<Path>\<FileName>',
    @provstr = ';pwd=<Password>'

    --Excel
    EXEC sp_addlinkedserver
    @server = '<LinkedServerName>',
    @srvproduct = 'Jet 4.0',
    @provider = 'MICROSOFT.JET.OLEDB.4.0',
    @datasrc = '<Path>\<FileName>',
    @provstr = 'Excel 8.0'

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

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

    --Html
    EXEC sp_addlinkedserver
    @server = '<LinkedServerName>',
    @srvproduct = 'Jet 4.0',
    @provider = 'MICROSOFT.JET.OLEDB.4.0',
    @datasrc = '<Path>\<FileName>',
    @provstr = 'HTML Import'

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

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

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

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