安装完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
则此时就可以成功导入了: