首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

SQL Server 2005 Express 匯入 Access 資料庫兩種方法:OPENROWSET 與升遷精靈

     編輯:MySQL 資料庫相關知識

SQL Server 2005 Express 無 Management Studio 完整版,匯入 Access (.mdb/.accdb) 可用 OPENROWSET 分散式查詢或 Access 內建「升遷精靈」。

方法一:OPENROWSET 單表匯入 (T-SQL)

  1. 啟用 Ad Hoc 分散式查詢:
-- SSMS 或 sqlcmd 執行
EXEC sp_configure 'show advanced options', 1; RECONFIGURE;
EXEC sp_configure 'Ad Hoc Distributed Queries', 1; RECONFIGURE;
  1. 匯入語句:
SELECT * INTO dbo.TargetTable
FROM OPENROWSET(
  'Microsoft.Jet.OLEDB.4.0',           -- Access 2003 (.mdb)
  'Data Source="D:\Data\Source.mdb";User Id=admin;Password=;',
  'SELECT * FROM SourceTable');

-- Access 2007+ (.accdb) 改用 ACE Provider
SELECT * INTO dbo.TargetTable
FROM OPENROWSET(
  'Microsoft.ACE.OLEDB.12.0',
  'Data Source="D:\Data\Source.accdb";User Id=admin;Password=;',
  'SELECT * FROM SourceTable');
  • 自動建立目標表結構並複製資料。
  • 適合單表、臨時匯入、腳本自動化。

方法二:Access 升遷精靈 (圖形介面,全庫遷移)

  1. Access 開啟來源 .mdb → 「資料庫工具」→「移動資料」→「SQL Server」。
  2. 選「建立新資料庫」→ 填寫 SQL Server 執行個體名 (如 localhost\SQLEXPRESS)、驗證方式、目標資料庫名。
  3. 選擇要遷移的表 (可全選)。
  4. 遷移選項:保留主鍵、索引、關聯、驗證規則。
  5. 完成後 SSMS 刷新即可看到新資料庫與所有表。

優點:一次遷移全庫結構與資料,保留關聯與索引。缺點:需安裝 Access 客戶端,大表遷移較慢。

常見問題

錯誤原因解決
「找不到提供者 Microsoft.Jet.OLEDB.4.0」64 位 SQL Server 無 32 位 Jet Provider安裝 64 位 Microsoft Access Database Engine 2010/2016 Redistributable (ACE.OLEDB.12.0)
「無法啟動分散式交易」MSDTC 服務未啟動services.msc 啟動 Distributed Transaction Coordinator,設定網路存取權限
自動編號欄位遷移後非 IdentityJet/ACE Identity 不對應 SQL Server Identity遷移後手動 ALTER TABLE ... ALTER COLUMN id INT IDENTITY(1,1)
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved