我正在尝试通过T-SQL
查询将我的Table
数据导出到Excel
。经过一番研究,我得到了以下代码:
INSERT INTO OPENROWSET ('Microsoft.Jet.OLEDB.4.0',
'Excel 8.0;Database=G:\Test.xls;',
'SELECT * FROM [Sheet1$]')
SELECT *
FROM dbo.products
当我执行上述查询时,出现了以下错误:
Msg 7302, Level 16, State 1, Line 7 Cannot create an instance of OLE DB provider "Microsoft.Jet.OLEDB.4.0" for linked server "(null)".
所以我在互联网上寻找解决方案,得到了下面的链接:
在上面的链接中,他们说我们需要成为管理员才能在C驱动器 TEMP
文件夹中创建文件夹,因为 OPENROWSET
在 TEMP
文件夹中创建一些文件或文件夹。
我正在我的家用电脑上进行此操作,我是管理员。仍然遇到相同的错误。
SQL SERVER 详细信息
Microsoft SQL Server 2016 (RC1) - 13.0.1200.242 (X64) Mar 10 2016 16:49:45 Copyright (c) Microsoft Corporation Enterprise Evaluation Edition (64-bit) on Windows 10 Pro 6.3 (Build 10586: )
任何解决问题的指针将不胜感激
更新: 我已经配置了 Ad Hoc Distributed Queries
并执行了以下查询
EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.Jet.OLEDB.4.0', N'AllowInProcess', 1
GO
EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.Jet.OLEDB.4.0', N'DynamicParameters', 1
GO
现在我遇到了这个错误
消息 7438,级别 16,状态 1,行 7 Microsoft.Jet.OLEDB.4.0 32位OLE DB提供程序无法在64位SQL Server中进程内加载。