1、SQL服务器上没有安装Microsoft.ACE.OLEDB.12.0相关驱动
2、SQL服务器上没有开启OLEDB的访问权限
3、访问具体的文件必须要在SQL服务器上,并且路径必须是SQL服务器上的物理绝对路径
安装Microsoft.ACE.OLEDB.12.0接口插件。
查看SQL Server配置管理其中,SQL Server的网络配置是多少位,是多少位就装多少位的插件。哪怕你的windows、Office、SQL Server都是64位。
打开Microsoft.ACE.OLEDB.12.0接口
接口服务是否打开,如果无,执行如下语句打开接口:
exec sp_configure 'show advanced options',1
reconfigure
exec sp_configure 'Ad Hoc Distributed Queries',1
reconfigure
如果执行出错(SQL 2005以后版本,不允许更改系统目录参数),即如果报错,改成如下语法,打开接口。
exec sp_configure 'show advanced options',1
reconfigure with override
exec sp_configure 'Ad Hoc Distributed Queries',1
reconfigure with override
3.打开ACE动态参数
可以用SQL语句,如下:
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
或者在SQL Server 中找到
Microsoft.ACE.OLEDB.12.0 属性-->常规-->选中:1、动态参数;2、允许进程内 (勾选)
4.执行opendatasource
SELECT * FROM OPENDATASOURCE('Microsoft.Ace.OLEDB.12.0',
'Data Source=E:\Test2.xls;Extended Properties=Excel 12.0')...sheet1$
检查语法,注意文件名、excel页名、excel文件后缀名(xls与xlsx有区别)