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

論壇系統從 Access 遷移至 SQL Server 完整實錄:資料導入、結構修正、函數差異對照與驗證

     編輯:關於SqlServer

遷移動機

  • 動網論壇原跑 Windows 2000 + IIS 5 + Access,遷移至 Windows 2003 後頻繁當機,微軟工程師判定 Access 連線數限制為主因。
  • 首頁需跑馬燈顯示最新貼文,Access 連結查詢效能差、語法不支援,遷移 SQL Server 勢在必行。

三步驟遷移流程

1. 資料導入:企業管理器匯入精靈

  1. 新建 SQL Server 資料庫。
  2. 右鍵 →「所有工作」→「匯入資料」。
  3. 資料來源選「Microsoft Access」,選擇原 .mdb 檔案,匯入所有資料表與資料。

2. 結構修正:補齊主鍵、預設值、索引

  • 匯入產生的資料表無主鍵、無預設值、無索引。
  • 對照原 Access 結構,逐一補上:
    主鍵 (PK)、Identity 自動遞增、預設值 (GETDATE() 等)、非叢集索引。
  • 雖繁瑣但必要:應用程式邏輯常隱性依賴預設值與 PK 關聯。

3. 程式碼修正:VBScript + SQL 語法差異對照表

項目Access / VBScriptSQL Server (T-SQL)備註
目前日期時間Now()GETDATE()VBScript 也用 Now(),注意區分 SQL 字串內外
日期差異DateDiff('d', d1, d2) (單引號、單字母)DATEDIFF(day, d1, d2) (無引號、完整/雙字母縮寫)
字串聯集& 或 ++
自動編號AutoNumberIDENTITY(1,1)
備註/長文字MemoTEXT / VARCHAR(MAX)
是/否Yes/No (Boolean)BIT (0/1)

驗證與上線

  • 依錯誤訊息逐一修正,前後耗時約 4 小時。
  • 上線後穩定運行,首頁跑馬燈查詢效能大幅提升。

遷移經驗總結

  1. 盡量避免在 SQL 使用資料庫專有函數:日期運算、字串處理移至應用層 (VBScript/C#) 完成,SQL 僅負責資料存取。
  2. 寫入標準 SQL:INSERT 明確列出欄位與值,不依賴資料庫預設值;避免 SELECT *。
  3. 程式碼加註遷移標記:如 -- TODO: Migration - replace Now() with GETDATE(),利於未來維護。
  4. 測試資料完整性:遷移後抽樣核對筆數、關鍵欄位值、關聯關係。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved