数据库——报错:无法创建链接服务器 “(null)“ 的 OLE DB 访问接口 “Microsoft.Ace.OLEDB.12.0“ 的实例。

安装完AccessDatabaseEngine_X64 (2012).exe后,准备在从Excel导入数据时:

输入如下代码

SELECT * FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0','Excel 12.0;Database=D:\S072003228DBS\食品销售数据\类别.XLSX',[类别$]);

报错一:
SQLServer阻止了对组件’AdHocDistributedQueries’的STATEMENT’OpenRowset/OpenDatasource’的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。系统管理员可以通过使用。sp_configure启用’AdHocDistributedQueries’。
在这里插入图片描述
解决方法:

	-- 启用Ad Hoc Distributed Queries:
	exec sp_configure 'show advanced options',1
    reconfigure
    exec sp_configure 'Ad Hoc Distributed Queries',1
    reconfigure

注意:为了安全,使用完成后,关闭Ad Hoc Distributed Queries

	-- 为了安全,使用完成后,关闭Ad Hoc Distributed Queries
	exec sp_configure 'Ad Hoc Distributed Queries',0
	reconfigure
	exec sp_configure 'show advanced options',0
	reconfigure

报错二:
无法创建链接服务器 “(null)” 的 OLE DB 访问接口 “Microsoft.Ace.OLEDB.12.0” 的实例。

加入下面这段代码:

    --允许在进程中使用ACE.OLEDB.12
    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

则此时就可以成功导入了:
在这里插入图片描述


版权声明:本文为wxfighting原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。