隨著企業對資料庫效能、擴展性與安全性要求提升,將 Access (Jet 引擎) 應用遷移至 SQL Server 7.0 (客戶/伺服器架構) 成為必然選擇。本文依循微軟官方白皮書架構,系統梳理遷移工具鏈、資料表/資料遷移、查詢轉換 (Transact-SQL/預存程序/檢視表)、應用程式改造三大階段關鍵步驟與決策要點。
| 工具 | 核心功能 | 遷移階段角色 |
|---|---|---|
| SQL Server 企業管理器 | 伺服器配置、資安、備份、複寫、完整物件管理、啟動 DTS 精靈 | 基礎設施與資料遷移入口 |
| 資料轉換服務 (DTS) | 異構資料來源匯入/匯出、驗證、轉換、資料倉庫建置、排程自動化 | 資料表與資料大量遷移主力 |
| SQL Server 查詢分析器 | 圖形化查詢工具、Showplan 分析、多查詢並行、索引建議 | 查詢轉換測試、效能調校 |
| SQL Server Profiler | 即時事件追蹤、過濾、重播、效能瓶頸識別 | 應用程式遷移後的效能基準測試與調優 |
.mdb 檔案。Access 查詢需轉換為 SQL Server 物件,三大載體各有優劣:
| 載體 | 適用場景 | 優點 | 限制 |
|---|---|---|---|
| Transact-SQL 腳本 | 一次性執行、DDL 建表、臨時資料修補 | 可直接在查詢分析器執行、版本控管容易 | 無參數化、難以封裝業務邏輯、權限管理粗糙 |
| 預存程序 | 核心業務邏輯 (SELECT/INSERT/UPDATE/DELETE)、參數化查詢 | 封裝標準化、網路傳輸少、執行計畫重用、權限精細控制、版本升級不影響呼叫端 | 需較強 T-SQL 能力、除錯相對麻煩 |
| 檢視表 | 簡化複雜聯結、資料行/列層級安全性、不需參數的查詢重用 | 虛擬表、即時反映基底表變更、可當資料表查詢 | 多表聯結檢視表不可更新、不支援 ORDER BY (SQL-92)、無參數 |
SELECT ... INTO new_table 或 CREATE TABLE + INSERT,置於預存程序中。IIF→CASE, NZ→ISNULL, Now→GETDATE)。CREATE PROCEDURE sp_Name @Params AS ... GO 或 CREATE VIEW v_Name AS ... GO。CommandType = adCmdStoredProcParameters.Append 綁定輸入/輸出參數。Access 到 SQL Server 的遷移,不只是資料搬家,更是從「檔案共享思維」轉向「伺服器端集中邏輯、參數化介面、效能可觀測」的架構升級。善用 DTS 移資料、預存程序封邏輯、Profiler 驗效能,方能平滑落地。