• 将Excel数据导入到SQL Server数据库中


    这个方法是到目前为止我见到最好的方法,还有几个要注意的问题也在下面提到了哦!其中还涉及到要注意到地方都在下面累出来了

    1)接受数据导入的表已经存在。  
         insert into t1 select * from  OPENROWSET('MICROSOFT.JET.OLEDB.4.0'  ,
         'Excel 5.0;HDR=YES;DATABASE=c:\\test.xls',sheet1$); 

    这里默认是Excel的工作表一即sheet1,但是记住一定要加"$"

    2)导入数据并生成表。 
         select * into t1 from  OPENROWSET('MICROSOFT.JET.OLEDB.4.0',
         'Excel 5.0;HDR=YES;DATABASE=c:\\test.xls',sheet1$);

    3) 导入Excel中指定的列到数据库表中指定的列。
         INSERT INTO t1(a1,a2,a3) SELECT a1,a2,a3 FROM OPENROWSET
    'MICROSOFT.JET.OLEDB.4.0' ,'Excel5.0; HDR=YES; DATABASE=c:\\test.xls',sheet1$);

    需要注意的地方。
    1)外围应用配置器的设置。
        从“功能外围应用配置器”中选择“启动 OPENROWSET 和 OPENDATASOURCE 支持”选项。
    这里可以通过SQL语句进行服务的开关,关于这个开关在我的博客上已经有了。
    地址是:
    http://www.cnblogs.com/forever4444/archive/2009/07/22/1528692.html
    2)关闭Excel表。
         如果在导入时要导入的Excel表格处于打开状态,会提示:
       “无法初始化链接服务器 "(null)" 的 OLE DB 访问接口 "microsoft.jet.oledb.4.0" 的数据源对象。”
    3)导入数据时,Excel的首行会作为表头,若导入到已存在的数据库表,则忽略首行。

    常遇到的两个问题:
    问题一】:已拒绝对 OLE DB 提供程序 'MICROSOFT.JET.OLEDB.4.0' 的特殊访问。必须通过链接服务器来访问此提供程序。
    分析】:这是因为您当前用来访问数据库的登录的权限不够(权限太低)。
    解决】:要么您还用sa登录,要么修改当前登录的权限,步骤如下:企业管理器→安全性→登录→找到你所用的登录名→右击"属性"→服务器角色→将System Administrator选项打钩→确定即可。 【问题二】:OLE DB 提供程序 'MICROSOFT.JET.OLEDB.4.0' 报错。提供程序未给出有关错误的任何信息。  OLE DB 错误跟踪[OLE/DB Provider 'MICROSOFT.JET.OLEDB.4.0' IDBInitialize::Initialize returned 0x80004005:  提供程序未给出有关错误的任何信息。]。
    分析】:
          首先先检查一下你用来导入的Excel表是否已经打开,如果打开了,请关闭后重试一下。
    还 是不行的话,继续往下看。如果你用来数据库操作的sql语句是用striing字符串保存的,且其中包含着.xsl文件的存放路径。那么问题可能就出在这 个路径上。您是否值用了一个斜杠"\"。如果只有一个斜杠的话,在运行前,错误列表中会提示"无法识别转义序列"。一旦运行,该提示就会消失,可能您就是 因为这样而没有注意到这错误。
  • 相关阅读:
    进程与线程的区别与联系
    IPC 进程间通信
    sql中的group by 和 having 用法
    大端小端格式
    Spring AOP的一个比喻和IOC的作用
    volatile变量
    策略模式
    划分算法与快速排序
    希尔排序及希尔排序java代码
    红黑树
  • 原文地址:https://www.cnblogs.com/forever4444/p/1528826.html
Copyright © 2020-2023  润新知