移轉至 SQL Server 資料庫

移轉至 SQL Server 資料庫

我們都有限制,而 Access 資料庫也不例外。 例如,Access 資料庫有 2 GB 的大小限制,而不支援超過 255 個並行使用者。 因此您的 Access 資料庫,以移至下一層級的時間時,您可以移轉到 SQL Server。 SQL Server (是否與內部或 Azure 在雲端) 支援大量的資料,更並行使用者,且大於容量比 JET/ACE 資料庫引擎。 本指南可讓您順利開始您的 SQL Server 生涯時,可協助保持您建立,並且希望促使您使用 Access 資料庫未來解決方案存取前端解決方案。 轉換精靈已移除 Access 在 Access 2013 中,因此現在您可以使用 Microsoft SQL Server 移轉小幫手 (SSMA)。 若要順利移轉,請遵循這些階段。

SQL server 資料庫移轉的階段

開始之前

下列各節提供背景和其他資訊,可協助您開始使用。

關於分割資料庫

所有的 Access 資料庫物件可以是在一個資料庫的檔案,或者它們可以儲存在兩個資料庫檔案: 前端資料庫和後端資料庫。 這稱為分割資料庫,而設計用來促進共用網路環境中。 資料表和關聯,必須只能包含後端資料庫檔案。 前端檔案必須只能包含所有其他物件,包括表單、 報表、 查詢、 巨集、 VBA 模組和連結的資料表後端資料庫。 當您移轉 Access 資料庫時,它類似分割資料庫的 SQL Server 做為新後端現在位於伺服器上的資料。

因此,您仍維持前端 Access 資料庫的 SQL Server 資料表的連結表格。 實際上,您可以衍生的 Access 資料庫提供,以及的 SQL Server 延展性快速應用程式開發的好處。

SQL Server 優點

仍需要移轉至 SQL Server 一些說服嗎? 以下是一些額外的好處,了解:

  • 更多個並行使用者    SQL Server 可以處理比存取許多其他並行使用者,並新增更多使用者時減少記憶體需求。

  • 提高的可用性    使用 SQL Server,您可以動態備份,累加或完成,資料庫時的使用中。 因此,您不需要強制使用者離開資料庫,即可備份資料。

  • 高效能與延展性    Access 資料庫,特別是有大型的 1 tb 大小資料庫優於通常會執行 SQL Server 資料庫。 此外,SQL Server 處理查詢更快速且有效率地處理查詢平行處理使用者要求使用單一處理序中的多個原生執行緒。

  • 增強的安全性    使用受信任的連線,SQL Server 整合了 Windows 系統安全性提供單一整合式的存取網路和資料庫,採用最佳的兩個保全系統。 這可讓您更輕鬆地管理複雜的安全性配置。 SQL Server 的機密資訊,例如身分證字號,信用卡資料適合儲存空間,而且地址的是機密。

  • 立即修復能力    如果作業系統會當機或電源移,SQL Server 可以自動回復一致的狀態在幾分鐘且沒有資料庫系統管理員介入資料庫。

  • VPN 使用方式    存取和虛擬私人網路 (VPN) 沒有收到。 但是與 SQL Server 遠端使用者可以使用仍使用前端資料庫在桌面和 SQL Server 後端位於 VPN 防火牆上。

  • Azure SQL Server    除了 SQL Server 的優勢,提供動態延展性沒有停機時間、 智慧型最佳化、 全域擴充性和可用性、 抑制硬體成本,以及減少系統管理。

選擇最佳的 Azure SQL Server 選項

如果您要移轉至 Azure SQL Server,有三個選項可供選擇,兩者都有各自的優點:

  • 單一彈性資料庫/集區    這個選項,有自己的資源管理透過 SQL 資料庫伺服器。 單一資料庫就像是包含在 SQL Server 資料庫。 您也可以新增彈性的資料庫,這是一組共用的資源透過 SQL 資料庫伺服器管理資料庫的集合。 最常用的 SQL Server 功能可使用內建的備份、 修補和修復。 但沒有保證確切維護時間,並從 SQL Server 移轉可能難以。

  • 受管理的執行個體    這個選項是一組共用的資源與系統和使用者資料庫的集合。 受管理的執行個體就像是高度相容性與 SQL Server 內部部署的 SQL Server 資料庫的執行個體。 受管理的執行個體具有內建的備份,修補,修復,並容易從 SQL Server 移轉。 然而,兩者有少數幾個 SQL Server 功能無法使用,而且不保證確切維護時間的。

  • Azure 虛擬機器    這個選項可讓您在 Azure 雲端虛擬機器內執行 SQL Server。 您具有 「 完全控制停留在 SQL Server 引擎,並輕鬆移轉路徑。 但您需要管理您的備份、 修補程式,與復原。

如需詳細資訊,請參閱選擇您的資料庫移轉路徑 Azure,以及選擇右邊 SQL Server Azure 中的選項

第一個步驟

有幾個問題您可以在最前面位址,可協助您執行 SSMA 之前簡化移轉程序:

  • 新增資料表的索引和主索引鍵    請確定每個 Access 資料表有索引和主索引鍵。 SQL Server 需要有至少有一個索引的所有資料表,而且都需要有主索引鍵都可以更新表格連結的資料表。

  • 檢查主要/外部索引鍵關聯性    請確認這些關聯性根據一致的資料類型與大小的欄位。 SQL Server 不支援外部索引鍵限制式中使用不同的資料類型與大小聯結的資料行。

  • 移除附件欄    SSMA 不會移轉含有附件資料行的資料表。

執行 SSMA 之前,請採取下列第一個步驟。

  1. 關閉 Access 資料庫。

  2. 請確定目前連接至資料庫的使用者也關閉資料庫。

  3. 如果資料庫是.mdb 檔案格式,然後 [移除使用者層次安全性

  4. 備份資料庫。 如需詳細資訊,請參閱保護您的資料使用備份與還原程序

祕訣    請考慮安裝Microsoft SQL Server Express edition桌面上支援最多 10 GB,並可免費更輕鬆地透過執行,並檢查您的移轉。 當您連線時,使用LocalDB 為資料庫執行個體

祕訣    如果可以的話,請使用獨立版本的存取權。 如果您只可以使用 Office 365,然後使用 Access 2010 資料庫引擎使用 SSMA 時移轉您的 Access 資料庫。 如需詳細資訊,請參閱Microsoft Access 資料庫引擎 2010年可轉散發套件

執行 SSMA

Microsoft 提供Microsoft SQL Server 移轉小幫手(SSMA) 更輕鬆移轉。 資料表和不含參數的選取查詢,主要可移轉 SSMA。 表單、 報表、 巨集及 VBA 模組無法轉換。 SQL Server 中繼資料檔案總管會顯示您的 Access 資料庫物件以及讓您可以檢閱目前的內容,這兩個資料庫的 SQL Server 物件。 這兩個連線會儲存在您的移轉檔案應該您決定要在未來傳輸其他物件。

附註    移轉程序可能需要一些時間,視您的資料庫物件和必須傳輸的資料量的大小而定。

  1. 若要移轉資料庫使用 SSMA,第一個下載並安裝軟體按兩下以下載的 MSI 檔案。 請確定您的電腦安裝適當的 32 或 64 位元版本。

  2. 安裝後 SSMA,開啟您的桌面,最好是從 Access 資料庫檔案的電腦上。

    您也可以在具有存取權的 Access 資料庫中,從網路共用資料夾中的電腦上開啟它。

  3. 請遵循 SSMA 開頭的指示,提供基本資訊,例如 SQL Server 位置、 Access 資料庫和物件,才能移轉連線資訊,與您是否要建立連結資料表。

  4. 如果您要移轉至 SQL Server 2016 或更新版本,並想要更新連結的資料表,請選取 [校閱工具>專案設定>一般新增 rowversion 資料行。

    [Rowversion] 欄位可協助避免記錄發生衝突。 Access 使用 SQL Server 連結資料表中的這個 rowversion 欄位來判斷上次更新的記錄時。 此外,如果您將 rowversion 欄位新增至查詢時,Access 會使用它更新作業後,重新選取資料列。 這可避免寫入衝突錯誤的協助改善效率,並刪除記錄案例存取例如偵測原始的提交,從不同的結果時,可能會發生的可能導因於浮動點的數字資料類型和修改的觸發程序資料行。 不過,避免使用 rowversion 功能變數中的表單、 報表或 VBA 程式碼。 如需詳細資訊,請參閱 rowversion。

    附註    避免混淆 rowversion 時間戳記。 雖然關鍵字時間戳記 rowversion SQL Server 中的同義字,您無法使用 rowversion 做為資料輸入的時間戳記的方式。

  5. 若要設定精確的資料類型,請選取 [校閱工具>專案設定>類型對應。 例如,如果您只會儲存英文的文字,您可以使用varchar ,而不是nvarchar資料類型。

轉換物件

SSMA 將 Access 物件轉換成 SQL Server 物件,但並不會立即複製的物件。 SSMA 提供下列移轉,您可以決定您是否要將其移到 SQL Server 資料庫物件的清單:

  • 資料表和資料行

  • 選取 [不含參數的 [查詢]。

  • 主要和外部索引鍵

  • 索引和預設值

  • 檢查 (允許零長度的資料行屬性、 欄位驗證規則、 資料表驗證) 的限制式

最佳做法是使用 SSMA 評定報告,其中會顯示轉換結果,包括錯誤、 警告、 資訊訊息,評估執行移轉中,而且實際上移動個別的錯誤修正採取步驟之前物件。

轉換資料庫物件會從 Access 中繼資料的物件定義將它們轉換成等同於TRANSACT-SQL (T SQL) 語法,,然後將這項資訊載入專案。 使用 SQL Server 或 SQL Azure 中繼資料檔案總管],您可以再檢視的 SQL Server 或 SQL Azure 物件和其屬性。

若要轉換,載入和移轉至 SQL Server,依照此手冊操作的物件。

祕訣    一旦您已成功移轉您的 Access 資料庫中,儲存專案檔案以供日後使用,讓您可以移轉您的資料,一次來測試或最終移轉。

連結資料表

請考慮安裝最新版本的 SQL Server OLE DB 和 ODBC 驅動程式,而不是使用 Windows 隨附的原生 SQL Server 驅動程式。 不只速度更快,是較新的驅動程式,但它們在先前的驅動程式不的 Azure SQL 中支援的新功能。 您可以在其中使用轉換的資料庫的每一部電腦上安裝驅動程式。 如需詳細資訊,請參閱Microsoft OLE DB 驅動程式 18 用於 SQL ServerMicrosoft ODBC 驅動程式 17 用於 SQL Server

移轉 Access 資料表之後,您可以連結至 SQL Server 現在裝載您的資料中的資料表。 直接從 Access 連結也可讓您更簡單的方法,以檢視您的資料,而不是使用更複雜的 SQL Server 管理工具。  您可以查詢和編輯連結的資料,根據權限設定的 SQL Server 資料庫系統管理員

附註    如果您建立的 ODBC DSN,當您連結至 SQL Server 資料庫連結程序期間,可以使用新的應用程式,或以程式設計方式使用儲存在 DSN 檔案中的連接字串的所有電腦上建立相同的 DSN。

如需詳細資訊,請參閱連結至或匯入 Azure SQL Server 資料庫中的資料匯入或連結至 SQL Server 資料庫中的資料。

祕訣:   請記得使用 Access 中的 [連結資料表管理員],來輕鬆地重新整理] 並重新連結資料表。 如需詳細資訊,請參閱管理連結的資料表

測試及修訂

下列各節說明您可以移轉,以及如何處理它們時遇到的常見問題。

查詢

只選取查詢轉換;其他查詢不是,包括參數的選取查詢。 某些查詢可能無法完全轉換,和 SSMA 報表查詢錯誤轉換過程。 您可以手動編輯不會轉換使用 T SQL 語法的物件。 語法錯誤也可能需要手動將存取特定函式和資料類型轉換至 SQL Server 的文件。 如需詳細資訊,請參閱比較 Access SQL 與 SQL Server TSQL

資料類型

存取和 SQL Server 有類似的資料類型,但請注意下列潛在問題。

大型數字    大型數字資料類型儲存非金額、 數字的值,而是使用 SQL bigint 資料類型相容。 您可以使用這種資料類型以更有效率的方式計算大型數字,但它需要使用 Access 16 (16.0.7812 或更新版本).accdb 資料庫檔案格式,並執行更有效地使用 64 位元版本的存取。 如需詳細資訊,請參閱使用大型數字資料類型以及選擇 64 位元或 32 位元版本的 Office 之間

是/否    根據預設,存取/否資料行轉換到 SQL Server 的位元欄位。 若要避免記錄鎖定 請確定位元欄位會設定為不允許 NULL 值。 在 SSMA,您可以選取元欄允許 Null屬性設為 [否]。 在 TSQL,使用CREATE TABLEALTER TABLE陳述式。

日期及時間    有多個日期和時間的考量:

  • 資料庫的相容性層級是否 130 (SQL Server 2016) 或更新版本,並建立連結的資料表包含一個或其他 datetime 或 datetime2 的欄表格,可能會傳回郵件 #deleted 在結果中。 如需詳細資訊,請參閱存取連結到 SQL Server 資料庫的資料表傳回 #deleted

  • 使用具有較大的日期範圍比 datetime datetime2資料類型。

  • 當查詢的 SQL Server 中的日期,需要考量的時間,以及日期。 例如:

    • DateOrdered 介於 1/1/19 1/31/19 可能不會包含所有訂單。

    • 1/1/19 之間 DateOrdered 00:00:00 AM 和 1/31/19 11:59:59 PM 是否包含所有訂單。

附件   為附件資料類型會將檔案儲存在 Access 資料庫。 在 SQL Server,您有幾個選項,請考慮。 您可以從 Access 資料庫解壓縮檔案,然後考慮使用 SQL Server 資料庫中儲存檔案的連結。 或者,您可以使用 FILESTREAM、 FileTables 或遠端 BLOB 存放區 (RBS),讓儲存在 SQL Server 資料庫中的附件。

超連結    Access 資料表有 SQL Server 不支援的超連結資料行。 根據預設,這些資料行都會轉換成 nvarchar (max) 欄在 SQL Server,但您可以自訂選擇較小的資料類型的對應。 在 Access 方案,您仍然可以使用表單和報表中的超連結行為如果您將控制項的 [超連結] 屬性設定為 true。

多重值的欄位    存取多重值的欄位會轉換為 SQL Server,做為 ntext 欄位包含以符號分隔的一組值。 因為 SQL Server 不支援採用多對多關聯模型的多重值資料類型,因此可能需要進行額外的設計和轉換工作。

如需有關如何將 Access 和 SQL Server 資料類型對應的詳細資訊,請參閱比較資料類型

附註    多重值的欄位不會轉換,及在 Access 2010 中已停用。

如需詳細資訊,請參閱日期和時間類型字串與二進位類型,和數字類型

Visual Basic

雖然 VBA 不支援的 SQL Server,請注意下列的可能問題:

在查詢中的 VBA 函數    在 access 查詢支援 VBA 函數查詢資料行中的資料。 但無法在 SQL Server 執行 Access 查詢的使用 VBA 函數,因此所有要求的資料會傳遞至 Microsoft Access 進行處理。 在大部分情況下,這些查詢應該都會轉換成傳遞查詢

使用者定義函數,在查詢中    Microsoft Access 查詢支援使用函式來處理資料傳遞給他們的 VBA 模組中定義。 查詢可獨立查詢、 表單/報表的記錄來源中的 SQL 陳述式、 資料來源的下拉式方塊和表單、 報表、 資料表欄位,及預設值或驗證規則運算式的清單方塊。 SQL Server 無法執行這些使用者定義的函數。 您可能需要手動重新設計這些函式,並將它們轉換成在 SQL Server 上的預存程序。

最佳化效能

到目前為止,以運用您新的後端的 SQL Server 最佳化效能最重要的方法是決定何時應該使用本機或遠端查詢。 當您將資料移轉到 SQL Server 時,也移動檔案伺服器從用戶端伺服器資料庫模型的計算。 請遵循這些一般指導方針:

  • 在快速存取的用戶端上執行小型、 唯讀的查詢。

  • 執行長度、 讀/寫來善用更大的處理能力伺服器上的查詢。

  • 最小化篩選與傳輸所需的資料彙總的網路流量。

最佳化用戶端伺服器資料庫模型中的效能

如需詳細資訊,請參閱建立傳遞查詢

以下是其他建議指導方針。

在伺服器上保留邏輯    您的應用程式也可以使用檢視、 使用者定義函數、 預存程序、 導出的欄位,以及觸發程序集中管理和共用應用程式邏輯、 商務規則和原則、 複雜的查詢、 資料驗證] 和參考完整性的程式碼上伺服器,而不是在用戶端。 請思考下列問題,可以此查詢或工作會在伺服器上執行更好更快嗎? 最後,測試以確保最佳效能的每個查詢。

使用表單和報表中的檢視    在 Access 中,執行下列動作:

  • 對於表單、 使用唯讀表單 SQL 檢視和讀/寫表單編製索引的 SQL 檢視做為記錄來源。

  • 針對報表,使用 [SQL 檢視做為記錄來源。 不過,建立一個檢視,每個報告,,以便您能以更輕鬆地更新特定報告,而不影響其他報告。

在表單或報表中的載入資料最小化    不顯示資料,直到使用者要求。 例如,保留空白的記錄來源] 屬性,讓使用者選取表單中的篩選,然後再填入您篩選的記錄來源] 屬性。 或者,使用 where 子句的 DoCmd.OpenForm 以及 DoCmd.OpenReport 顯示確切的使用者所需的記錄。 請考慮關閉記錄功能。

請務必謹慎使用異質的查詢   應避免同時執行結合本機 Access 資料表與 SQL Server 連結的資料表,有時稱為 「 混合式查詢的查詢。 此類型查詢仍然需要存取所有的 SQL Server 資料下載到本機電腦,然後執行查詢時,它不會執行查詢的 SQL Server。

若要使用的本機資料表的時機    請考慮使用的本機資料表之資料的很少變更,例如州或省所在國家或地區的清單。 靜態資料表常用於篩選,可以執行效能較佳前端存取。

如需詳細資訊,請參閱資料庫引擎調整顧問使用最佳化 Access 資料庫效能分析工具,以及最佳化 Microsoft Office Access 應用程式連結至 SQL Server

另請參閱

Azure 資料庫移轉指南

Microsoft 資料移轉部落格

Microsoft Access SQL Server 移轉、 轉換及轉換

共用 Access 桌面資料庫的方法

附註:  本頁面是經由自動翻譯而成,因此文中可能有文法錯誤或不準確之處。 讓這些內容對您有所幫助是我們的目的。 告訴我們這項資訊是否有幫助? 這裡是供您參考的英文文章

增進您的 Office 技巧
探索訓練
優先取得新功能
加入 Office 測試人員

這項資訊有幫助嗎?

感謝您的意見反應!

感謝您的意見反應! 我們將協助您與我們的其中一個 Office 支援專員連絡以深入了解您的意見。

×