SqlServer2008 脚本导入Execl数据
Posted 竹殇
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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\',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表中有空行数据,导致
以上是关于SqlServer2008 脚本导入Execl数据的主要内容,如果未能解决你的问题,请参考以下文章
如何将数据库sql server2008中的数据库生成脚本输出