2009-05-19 144 views
2

因为我是存储过程的新手,所以我需要一些帮助来解决这个问题。我正在尝试使用此存储过程将.DBF表导入Sql Server 2008。将DBF文件导入到Sql Server中

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”尚未注册。这是不正确的,我已经安装它,它在我的其他应用程序中正常工作。

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

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 

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

+0

[如何在SQL Server中导入DBF文件]可能的重复(https://stackoverflow.com/questions/52822/how-to-import-a-dbf-file-in-sql-server) – Jerry 2017-11-14 10:43:21

回答

3

您可以尝试

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

this previous question

+0

I因为我听说odbc驱动程序不再支持,但它的工作原理是想使用视觉狐狸pro oledb dll。 – jumbojs 2009-05-19 22:51:27

2

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

进一步的信息可参见: http://msdn.microsoft.com/en-us/library/ms190312.aspx

0

为别人寻找一个答案,这个错误的原因是安装Foxpro驱动程序为“Just Me”而不是“Everyone”。

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