我如何解决"OLE DB提供程序"Microsoft.Jet.OLEDB.4.0"尚未注册."?

Pen*_*uen 5 .net sql-server sql-server-2005

我尝试使用excel文件中的get excel数据.我正在使用office 2007和sql 2005.我在下面编写代码:

CREATE TABLE [dbo].[Addresses_Temp] (
    [FirstName]   VARCHAR(20),
    [LastName]    VARCHAR(20),
    [Address]     VARCHAR(50),
    [City]        VARCHAR(30),
    [State]       VARCHAR(2),
    [ZIP]         VARCHAR(10)
)
GO

INSERT INTO [dbo].[Address_Temp] ( [FirstName], [LastName], [Address], [City], [State], [ZIP] )
SELECT [FirstName], [LastName], [Address], [City], [State], [ZIP]
FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',
                'Excel 8.0;Database=C:\Source\Addresses.xls;IMEX=1',
                'SELECT * FROM [Sayfa1$]')
Run Code Online (Sandbox Code Playgroud)

错误:消息7403,级别16,状态1,行2 OLE DB提供程序"Microsoft.Jet.OLEDB.4.0"尚未注册.

我怎么解决呢?

小智 6

如果您从 SQL 代理作业运行 SSIS 包,则在从 MSDB 或文件系统选择 ssis 包后的步骤属性中,转到执行选项点击并选中使用 32 位运行时选项。

为我工作。


cod*_*ger 2

对于 32 位 SQL Server,您需要手动安装,因为从 MDAC 2.6 开始不包含驱动程序。它们可以在这里下载

对于 64 位 SQL Server 恐怕这不再可能了。Jet Engine 驱动程序未移植到 64 位,并且将来似乎也不会移植。您可以使用 SSIS 但不能使用 OpenRowSet 查询导入 Excel 文档。这里还有另一种选择,但这似乎是一个费力的过程