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

时间:2010-06-11 07:24:43

标签: .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$]')

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

我该如何解决?

2 个答案:

答案 0 :(得分:3)

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

为我工作。

答案 1 :(得分:2)

对于32位SQL Server,您需要手动安装,因为MDAC 2.6以后不包含驱动程序。可以下载here

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