zoukankan      html  css  js  c++  java
  • 向SQL2008R2导入Acess、excel数据

    一:导入Access数据 
    1、在sql2008查询分析 器中输入如下查询语句能查出access中的数据 

    1. SELECT * FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0', 'Data Source="e: \xx.mdb";User ID=Admin;Password=;Jet OLEDB:Database Password=123456')...gouqi  
    SELECT * FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0', 'Data Source="e: \xx.mdb";User ID=Admin;Password=;Jet OLEDB:Database Password=123456')...gouqi


    2、将access 中数据导入到sql2008中 

    1. SELECT * into sql表名 FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0', 'Data Source="e: \xx.mdb";User ID=Admin;Password=;Jet OLEDB:Database Password=123456')...access表名  
    SELECT * into sql表名 FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0', 'Data Source="e: \xx.mdb";User ID=Admin;Password=;Jet OLEDB:Database Password=123456')...access表名



    注:'sql表名' 不要事先建好!!! 
    二:Excel数据 
       1、向现有表中导入数据 

    1. INSERT INTO 表 SELECT * FROM OPENROWSET('MICROSOFT.JET.OLEDB.4.0','Excel 5.0;HDR=YES;DATABASE=c: est.xls',sheet1$)  
    INSERT INTO 表 SELECT * FROM OPENROWSET('MICROSOFT.JET.OLEDB.4.0','Excel 5.0;HDR=YES;DATABASE=c:	est.xls',sheet1$)


      2、导入数据并新增表 

    1. SELECT * INTO 表 FROM OPENROWSET('MICROSOFT.JET.OLEDB.4.0','Excel 5.0;HDR=YES;DATABASE=c: est.xls',sheet1$)  
    SELECT * INTO 表 FROM OPENROWSET('MICROSOFT.JET.OLEDB.4.0','Excel 5.0;HDR=YES;DATABASE=c:	est.xls',sheet1$)


      3、导入部分列到表中 

    1. INSERT INTO 表 (a1,a2,a3) SELECT a1,a2,a3 FROM OPENROWSET('MICROSOFT.JET.OLEDB.4.0','Excel 5.0;HDR=YES;DATABASE=c: est.xls',sheet1$)  
    INSERT INTO 表 (a1,a2,a3) SELECT a1,a2,a3 FROM OPENROWSET('MICROSOFT.JET.OLEDB.4.0','Excel 5.0;HDR=YES;DATABASE=c:	est.xls',sheet1$)


    三:过程中遇到的问题备忘 
       1、查不出来 
         1.1:

    引用
    消息 15281,级别 16,状态 1,第 1 行 
    SQL Server 阻止了对组件 'Ad Hoc Distributed Queries' 的 STATEMENT 'OpenRowset/OpenDatasource' 的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。系统管理员可以通过使用 sp_configure 启用 'Ad Hoc Distributed Queries'。有关启用 'Ad Hoc Distributed Queries' 的详细信息,请参阅 SQL Server 联机丛书中的 "外围应用配置器"。


    http://blog.csdn.net/the_pain/archive/2009/04/23/4103518.aspx 
         1.2:环境是:windows server 2008 r2  ,sql server 2008 查询时报:

    引用
    消息 7308,级别 16,状态 1,第 2 行 
    因为 OLE DB 访问接口 'Microsoft.Jet.OLEDB.4.0' 配置为在单线程单元模式下运行,所以该访问接口无法用于分布式查询。


          解决:1、下载64位驱动http://www.microsoft.com/en-us/download/details.aspx?id=13255 
                并将连接字符改成:Microsoft.ACE.OLEDB.12.0 
       2、excel 导入库中为科学计算法显示 
    http://xinming-me.iteye.com/blog/1490522 
       网上的方法有可能还解决不了导入后是科学计算显示 
       在生成excel时将所有内容转成字符或文本形式,比如,我是从查询结果中复制的数据,手工拷到excel表中的,我只要保证 查询出来的结果集 是文本就OK了。 

       ->将excel 中的数据复制到 txt中; 
       ->再将excel中的数据全部干掉; 
       ->全选,设置一下excel 格式为文本 
       ->从txt中重新将数据复制到excel表格中 
       ->导入 

    4、表a,b  导入 表x 

    1. insert into x(cardnum,username,unitprice,zuihougouqiliang,buygasamount,beizhu)   
    2. select a.用户编号 cardnum,a.用户姓名 username,a.购气价格 unitprice,   
    3. b.购气数量 zuihougouqiliang,b.总气量 buygasamount,b.备用2 beizhu   
    4. from a left join b on (a.id=b.id)   
    insert into x(cardnum,username,unitprice,zuihougouqiliang,buygasamount,beizhu)
    select a.用户编号 cardnum,a.用户姓名 username,a.购气价格 unitprice,
    b.购气数量 zuihougouqiliang,b.总气量 buygasamount,b.备用2 beizhu
    from a left join b on (a.id=b.id) 
  • 相关阅读:
    Java 破解谷歌翻译api,可以实现程序自动化翻译文章
    如何搭建高可用redis架构?
    架构师带你玩转分布式锁
    Java8内存模型—永久代(PermGen)和元空间(Metaspace)
    【SFA官方翻译】使用 Kubernetes、Spring Boot 2.0 和 Docker 的微服务快速指南
    kafka为什么这么优秀!
    讲道理,为什么分布式一定要有Redis?
    Windows系统内存分析工具的介绍
    colspan width issue
    OpenGL ES3 非常好的系列文章
  • 原文地址:https://www.cnblogs.com/dongchi/p/4928510.html
Copyright © 2011-2022 走看看