sqlserver读取excel⾥的数据
以下是执⾏的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 N'Microsoft.ACE.OLEDB.12.0', N'AllowInProcess', 1
EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'DynamicParameters', 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"。
这个错误需要安装驱动,选择相应版本下载
另外,很重要的⼀点是:执⾏以上sql语句的数据库必须是本地数据库,
excel连接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的驱动是不⽀持的。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论