码迷,mamicode.com
首页 > 数据库 > 详细

sql server 读取excel里的数据

时间:2017-01-06 15:14:45      阅读:393      评论:0      收藏:0      [点我收藏+]

标签:toe   ace   服务器   服务   win   sof   off   log   null   

以下是执行的sql代码,只拿简单读取数据举例,其他详细的,请自行查看

exec sp_configure show advanced options,1
reconfigure
exec sp_configure Ad Hoc Distributed Queries,1
RECONFIGURE
GO
EXEC master.dbo.sp_MSset_oledb_prop NMicrosoft.ACE.OLEDB.12.0, NAllowInProcess, 1
EXEC master.dbo.sp_MSset_oledb_prop NMicrosoft.ACE.OLEDB.12.0, NDynamicParameters, 1
GO
SELECT *
FROM OPENROWSET(Microsoft.ACE.OLEDB.12.0,Excel 12.0;Database=C:\Users\beige\Desktop\sqltoexcel\Data.xlsx;hdr=yes;imex=1, ICD$)

Go
SELECT *
FROM OPENROWSET(Microsoft.ACE.OLEDB.12.0,Excel 12.0;Database=C:\Users\beige\Desktop\sqltoexcel\Data.xlsx;hdr=yes;imex=1, CMS$)
GO
exec sp_configure Ad Hoc Distributed Queries,0
reconfigure
exec sp_configure show advanced options,0
reconfigure 

执行报错时,尚未注册 OLE DB 访问接口 "Microsoft.ACE.OLEDB.12.0"。

这个错误需要安装AccessDatabaseEngine_X64.exe驱动,选择相应版本下载

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

另外,很重要的一点是:执行以上sql语句的数据库必须是本地数据库,

否则报错为

链接服务器 "(null)" 的 OLE DB 访问接口 "Microsoft.ACE.OLEDB.12.0" 报错。提供程序未给出有关错误的任何信息。
消息 7303,级别 16,状态 1,第 1 行
无法初始化链接服务器 "(null)" 的 OLE DB 访问接口 "Microsoft.ACE.OLEDB.12.0" 的数据源对象。

下面总结解决方式:
1、在SQL Server 外围应用配置器中启用 OpenRowSet 和 OpenDataSource函数
2、执行以上sql语句的数据库必须是本地数据库,如果为远程的数据库就会报上面的错误
3、链接字符串 Extended Properties属性的内容要以分号间隔并用双引号括起来,sheet1$ 在括号外
4、注意office的版本4.0是office2003,12.0是office2007的版本,看看是否装了驱动。
5、最为关键的是要看sql server 版本号,是32位的还是64位的。x64位的sql server很多的office的驱动是不支持的。

 

sql server 读取excel里的数据

标签:toe   ace   服务器   服务   win   sof   off   log   null   

原文地址:http://www.cnblogs.com/sevene/p/6256284.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!