SQL错误 消息 7302,级别 16,状态 1

2025-02-23 22:03:57
推荐回答(2个)
回答1:

1、SQL服务器上没有安装Microsoft.ACE.OLEDB.12.0相关驱动
2、SQL服务器上没有开启OLEDB的访问权限
3、访问具体的文件必须要在SQL服务器上,并且路径必须是SQL服务器上的物理绝对路径

回答2:

  1. 安装Microsoft.ACE.OLEDB.12.0接口插件。

    查看SQL Server配置管理其中,SQL Server的网络配置是多少位,是多少位就装多少位的插件。哪怕你的windows、Office、SQL Server都是64位。

  2. 打开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有区别)