将DBF文件导入Sql Server

时间:2009-05-19 16:57:24

标签: sql-server stored-procedures import dbf

我需要一些帮助来解决这个问题,因为我对存储过程不熟悉。我正在尝试使用此存储过程将.DBF表导入Sql Server 2008。

CREATE PROCEDURE spImportDB
-- Add the parameters for the stored procedure here

AS
BEGIN

-- Insert statements for procedure here

 SELECT * into Products
 FROM OPENROWSET('vfpoledb','C:\Users\Admin\Doc\Data\DBF',
 'SELECT * FROM MyTable')

END
GO

我收到此错误。 OLE DB提供程序“vfpoledb”尚未注册。这不是真的,我已经安装它并且在我的其他应用程序中工作正常。

我也试过用这个提供程序以这种方式运行它,但是我收到了这条错误消息 无法为链接服务器“(null)”初始化OLE DB提供程序“Microsoft.Jet.OLEDB.4.0”的数据源对象。

CREATE PROCEDURE spImportDB
-- Add the parameters for the stored procedure here

AS
BEGIN

-- Insert statements for procedure here

 SELECT * into Products
 FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0','C:\Users\Admin\Doc\Data\DBF',
 'SELECT * FROM MyTable')

END
GO

创建此存储过程最简单的方法是什么?我希望它是一个存储过程而不是向导或程序,所以请不要给我任何程序。

3 个答案:

答案 0 :(得分:3)

你可以尝试

SELECT * into SomeTable
FROM OPENROWSET('MSDASQL', 'Driver=Microsoft Visual FoxPro Driver;
SourceDB=\\SomeServer\SomePath\;
SourceType=DBF',
'SELECT * FROM SomeDBF')

来自this previous question

答案 1 :(得分:2)

我不确定VFPOLEDB的“友好名称”,但是第二个SP应该可以工作(即使用'Microsoft.Jet.OLEDB.4.0'),只要您指向特定的DBF文件即可名称。看起来你指的是一个目录,而不是实际的文件。

更多信息可在以下网址找到: http://msdn.microsoft.com/en-us/library/ms190312.aspx

答案 2 :(得分:0)

对于其他寻找答案的人来说,导致此错误的原因是为“Just Me”而不是“Everyone”安装Foxpro驱动程序。

运行“Everyone”安装程序以避免此错误。