我正在尝试将.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之上运行(如果工作得很好)对于自动化脚本来说非常有用。
非常感谢您的帮助!