我目前正在迁移SQL Server 2005
to SQL Server 2012
。大多数情况下,所有功能都保持不变。但是,在少数商店中,我使用 Jet provider 4.0 将 Excel 数据导入 SQL Server 表。我知道 64 位不支持它,而 Ace 提供程序是它的替代方案。但是,我的查询仅适用于系统管理员(SA)访问,生产中不会提供。
有没有人有同样的解决方案?
以下是我尝试过的查询。
USE Master
sp_configure 'Show Advanced Options', 1;
RECONFIGURE;
GO
sp_configure 'Ad Hoc Distributed Queries', 1;
RECONFIGURE;
GO
EXEC sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'AllowInProcess', 1
GO
EXEC sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'DynamicParameters', 1
GO
SELECT * FROM OPENDATASOURCE('Microsoft.ACE.OLEDB.12.0',
'Data Source=C:\Cutomer_Transaction.xls;Extended Properties=Excel 12.0')...[Sheet1$]
GO
此查询适用于 sa 登录。但其他用户失败并显示以下消息:
对 oledb 提供程序“Microsoft.Ace.Oledb.12.0”的临时访问已被拒绝。您必须通过链接服务器访问此提供程序。