首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

DBF 檔案匯入 SQL Server 完整圖文教學:ODBC 設定與匯入精靈操作

     編輯:關於SqlServer

前置需求

  • 本機已安裝 Visual FoxPro ODBC 驅動程式(VFPODBC.msi)。
  • 若未安裝,可從 Microsoft 官方下載中心取得。

步驟 1:設定 ODBC 系統資料來源名稱 (System DSN)

  1. 開啟「控制台」→「系統管理工具」→「資料來源 (ODBC)」(64-bit 系統請同時檢查 32-bit 版:C:\Windows\SysWOW64\odbcad32.exe)。
  2. 切換至「系統 DSN」頁籤 → 點擊「新增」。
  3. 選擇 Microsoft Visual FoxPro Driver → 完成。
  4. 設定對話框中:
    • 資料來源名稱:自訂名稱(如 VFP_DBF_Source)。
    • 說明:選填。
    • 路徑:指向 DBF 檔案所在的資料夾路徑(非單一檔案),例如 D:\Data\DBF_Files\。
    • 其他選項保持預設 → 確定完成。

步驟 2:使用 SQL Server 匯入/匯出精靈匯入資料

  1. 在 SSMS 中右鍵目標資料庫 → 「工作」→ 「匯入資料」啟動精靈。
  2. 資料來源:選擇 .NET Framework Data Provider for ODBC 或 Microsoft OLE DB Provider for ODBC Drivers。
    • 連線字串範例:Dsn=VFP_DBF_Source;
  3. 目的地:選擇 SQL Server Native Client,指定目標伺服器、驗證方式、目標資料庫。
  4. 指定資料表複製或查詢:選擇「從來源資料表/檢視複製資料」。
  5. 選取來源資料表與檢視:列出 DBF 資料夾下所有 .dbf 檔案(對應資料表),勾選需匯入的表,可點擊「編輯對應關係」調整欄位對應、資料型別、對應名稱。
  6. 執行套件:勾選「立即執行」→ 完成 → 查看執行結果報告。

步驟 3:驗證匯入結果

-- 檢查匯入資料筆數
SELECT COUNT(*) FROM dbo.ImportedTable;

-- 檢查欄位資料型別
EXEC sp_help 'ImportedTable';

-- 抽樣查看資料
SELECT TOP 10 * FROM dbo.ImportedTable;

常見問題與解決方案

問題原因解決方案
找不到 Visual FoxPro Driver未安裝或安裝 32/64 位元不匹配安裝 VFPODBC.msi;64-bit SSMS 需 64-bit 驅動,或使用 32-bit ODBC 管理工具設定 DSN 供 32-bit 應用使用
中文欄位名/資料亂碼編碼不匹配(DBF 多為 Big5/GB2312)在連線字串加入 CodePage=950 (Big5) 或 CodePage=936 (GB2312);或匯入後用 CAST/CONVERT 轉換
Memo 欄位截斷/遺失DBF Memo 欄位對應到 varchar(max)/nvarchar(max)在「編輯對應關係」將目標欄位型別設為 nvarchar(max) 或 varbinary(max)
數值欄位精度遺失DBF Numeric 欄位精度/小數位未正確對應手動調整對應欄位的 Precision/Scale
日期欄位轉換錯誤DBF Date 型別與 SQL Server datetime 格式差異使用衍生欄位轉換:CONVERT(datetime, source_col, 111) 等

替代方案:使用 OPENROWSET 直接查詢

-- 需啟用 Ad Hoc Distributed Queries
EXEC sp_configure 'show advanced options', 1; RECONFIGURE;
EXEC sp_configure 'Ad Hoc Distributed Queries', 1; RECONFIGURE;

-- 直接查詢 DBF
SELECT * 
FROM OPENROWSET(
    'MSDASQL', 
    'Dsn=VFP_DBF_Source;', 
    'SELECT * FROM tablename'
);

自動化建議

  • 將匯入精靈另存為 .dtsx SSIS 套件,部署至 SQL Server Agent 排程執行。
  • 使用參數化連線字串,支援多環境部署。
  • 加入記錄與錯誤通知機制。

透過 ODBC 橋接 DBF 至 SQL Server,是舊系統資料遷移最標準、相容性最佳的路徑。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved