用于从本地系统读取/导入.dbf文件到SQL Server 2016 64位的命令

时间:2018-08-22 19:06:42

标签: sql-server-2016 linked-server dbf dbase openrowset

我正在尝试将.dbf文件导入SQL Server 2016 64位。为此,我安装了Microsoft Visual FoxPro。以下设置适用于32位版本的SQL Server,但不适用于64位版本。我还尝试更改了驱动程序的名称,例如:Microsoft.Jet.OLEDB.4.0,Microsoft.ACE.OLEDB.16.0等,但是没有运气。

USE [master] 
GO 

EXEC sp_configure 'show advanced options', 1
RECONFIGURE
GO

EXEC sp_configure 'ad hoc distributed queries', 1
RECONFIGURE
GO

USE [master] 
GO 

EXEC master.dbo.sp_MSset_oledb_prop N'VFPOLEDB', N'AllowInProcess', 1 
GO

然后

DECLARE @sql AS NVARCHAR(200),
        @path AS NVARCHAR(200),
        @table AS NVARCHAR(200)

SET @path = 'C:\Users\sid\Downloads\VPF\'
SET @table = 'dmfiles'
SET @sql = 'Select * from openrowset(''VFPOLEDB'','''+@path+''';'''';'''',''select * from '+@table+'.dbf'')'

EXEC sp_executesql @sql 

还尝试创建cmd的链接服务器类型:

SELECT * 
FROM OPENROWSET ('MICROSOFT.ACE.OLEDB.12.0','dBase 
5.0;HDR=YES;IMEX=2;DATABASE=\Dbf Directory\','SELECT * FROM dbf_filename.dbf')

当我尝试打开链接服务器时,运行任何命令,SQL Server只会说正在执行,从不显示任何结果,也不会引发错误。

我尝试使用DBF Viewer 2000将.dbf转换为.sql并在数据库上运行它们,但是,在SQL之上运行(如果工作得很好)对于自动化脚本来说非常有用。

非常感谢您的帮助!

0 个答案:

没有答案