簡體   English   中英

將 MS Access 數據庫遷移到 SQL Server 2008 R2

[英]Migrating MS Access Database to SQL Server 2008 R2

我有一個 SQL Server 2008 R2,我想從 MS Access 遷移數據,但是當我嘗試使用 SSMA 時,選擇 SQL Server 2008 R2 的選項不可用。

請提供任何幫助,SSIS 對我的情況有用嗎?

好吧,這實際上取決於您在訪問數據庫中有多少表和多少關系。

例如,您可以在您的工作站上安裝 sql server express 的免費版本,然后進行本地遷移(例如 sql 2017 格式)。

那時,您可以選擇編寫數據庫腳本 - SSMS(sql management studio)的更高版本當然支持 2008。例如:

在此處輸入圖像描述

所以,不要右鍵單擊數據庫並選擇“腳本數據庫為”,而是從任務菜單中選擇“生成腳本”。

由此,我們看到 2008 年仍然可以編寫成腳本。

在此處輸入圖像描述

當然,即使在最新版本的 sql 服務器中,您也可以創建舊版本的數據庫。 但是,當您創建數據庫的“先前”版本時(比如在最新版本的 sql 服務器中,這只會限制兼容性功能,但不允許您使用或制作備份文件以在先前版本的服務器中恢復) sql 服務器。(sql server 有點討厭 - 你只能 go 轉發數據庫 - 強大的功能,但是一旦你移動,你就不能使用也不能創建可以被以前版本使用的備份文件。但是你可以編寫腳本到以前的版本。

部分原因在於您使用 SSMAA 花費了多少時間。

如果你按照上面的方法執行 go,那么確保你調整了列映射。 因此,例如,默認情況下 access 中的 datetime 會轉換為 datetime2,我不太記得 2008 是否支持 datetime2。 (無論如何,我還是會堅持 datetime)。

因此,即使使用最新的遷移助手,您也可以設置(調整)列映射,最多需要 1 或 2 個更改(例如默認為 datetime 代替 datetime2 列類型)。

獲取並設置 sql express local 是反復測試遷移的好方法,因為通常前幾次可能會失敗,或者不會產生您想要的結果。 這實際上是采用 SSMAA 的另一個重要原因,因為您可以花時間調整和更改一些東西,然后再次運行它,甚至再次運行它。

現在,如果您編寫整個數據庫(和數據)的腳本,此類文本文件相當大,並且在大多數情況下,您無法使用 SSMS(sql management studio)加載此類腳本,因此請使用命令行 sqlcmd .exe 導入(處理)您使用我在上面概述的腳本向導創建的腳本數據庫。 它吐出一個“大”文本文件,可以將其導入 2008。

我的意思是,即使在 2008 年和那個 SSMS 時代,它也有一個導入選項,您可以從訪問數據庫導入。 但是,當您這樣做時,PK 將被刪除,索引將被刪除,關系也會被刪除。

所以,對於 2-5 個表 - 哎呀,只需使用 ssms 導入。

但是,如果您有 40 個表,那么大量的關系呢? 那么是的,這是一項艱巨的工作,然后我會 100% 推薦您使用 Access 遷移助手工具。 (學習需要一點時間——一開始有點混亂,但是一旦你通過了學習曲線,如果你想向上移動很多表,我強烈推薦這個工具,保持 PK 設置,當然還保持相關數據完好無損。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM