zoukankan      html  css  js  c++  java
  • SQL Server 2008 脚本导入Execl数据

    使用SQL脚本导入Execl数据,是使用SQL的链接服务器的访问接口来完成的.

    1.所以首先,需要数据库中有对应的Execl访问接口,使用的是SQlServer2008R2+Office2013,所以安装使用的是ACE2010的驱动

    下载地址:  http://www.microsoft.com/zh-cn/download/details.aspx?id=13255  

    安装之后在数据会有对应的访问接口

    2.开启Ad Hoc Distributed Queries

    --开启Ad Hoc Distributed Queries
    EXEC sp_configure 'show advanced options',1 
    RECONFIGURE
    GO
    EXEC sp_configure 'Ad Hoc Distributed Queries',1
    RECONFIGURE
    GO

    3.设置访问接口属性,开启"动态参数"和"允许进程内"选项, 可以用可视化设置,也可以脚本设置.

    --设置开启访问接口的"允许进程内"和"动态参数"
    EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'AllowInProcess', 1    
    GO    
    EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'DynamicParameters', 1    
    GO   

    4.创建连接服务器实例,进行Excel的数据操作,查询,关联,完全当做一张数据表来操作即可

    INSERT INTO Biz_Table 
    SELECT * FROM 
    OPENDATASOURCE('Microsoft.Ace.OleDb.12.0','Extended Properties="Excel 12.0;HDR=YES;IMEX=1";Data Source="D:zjzk.xlsx"')...[Sheet1$] AS xls
    LEFT JOIN Biz_Sell1 AS s1 ON s1.ID=xls.ID

    5.关闭Ad Hoc Distributed Queries

    --关闭Ad Hoc Distributed Queries
    EXEC sp_configure 'Ad Hoc Distributed Queries',0 
    RECONFIGURE
    GO
    EXEC  sp_configure 'show advanced options',0 
    RECONFIGURE 
    GO

    需要注意的几点

    1.在使用OPENDATASOURCE 初始化链接服务器接口的时候,后面的...[Sheet1$] 中的名称需要和Execl文档中的需要查询的数据的选项卡的名字对应.

    2.在进行数据操作的时候Excel文件需要关闭,再操作,否则无法初始化

    3.如果遇到类型转换错误的问题,但是Excel中数据又没有问题,此时使用select * 查询一下所有数据,有可能Excel表中有空行数据,导致

  • 相关阅读:
    C#里的async和await的使用
    解决 .NET CORE3.0 MVC视图层不即时编译
    【转】CSS实现自适应分隔线的N种方法
    iscrolljs 看API 回顾以前开发中失误
    自由了-和过去说再见
    js 性能基准测试工具-告别可能、也许、大概这样更快更省
    dom事件不求甚解,色解事件捕获和冒泡
    百度mobile UI组件GMU demo学习1-结构和初始化
    自己收集原生js-2014-2-23
    如何在电脑上测试手机网站(补充)和phonegap
  • 原文地址:https://www.cnblogs.com/sky-gfan/p/7338276.html
Copyright © 2011-2022 走看看