当前位置:首页 > 数据库 > Sqlserver

SqlServer2008 脚本导入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,1RECONFIGUREGOEXEC sp_configure Ad Hoc Distributed Queries,1RECONFIGUREGO

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

技术分享

 

            --
            设置开启访问接口的"允许进程内"和"动态参数"
            EXEC master.dbo.sp_MSset_oledb_prop NMicrosoft.ACE.OLEDB.12.0, NAllowInProcess, 1GOEXEC master.dbo.sp_MSset_oledb_prop NMicrosoft.ACE.OLEDB.12.0, NDynamicParameters, 1GO

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
LEFTJOIN 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,0RECONFIGUREGOEXEC  sp_configure show advanced options,0RECONFIGUREGO

 

需要注意的几点

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

技术分享 技术分享

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

技术分享

 

原文:http://www.cnblogs.com/sky-gfan/p/7338276.html


【说明】本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!