1

我目前正在迁移SQL Server 2005to 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”的临时访问已被拒绝。您必须通过链接服务器访问此提供程序。

4

0 回答 0