使用轉換精靈將 Access 資料移到 SQL Server 資料庫

重要:  本文係由機器翻譯而成,請參閱免責聲明。本文的英文版本請見這裡,以供參考。

一段時間,大部分的資料庫應用程式放大、 變得更複雜,並以支援更多使用者需要。有些時候生命週期的 Microsoft Office Access 應用程式,您可能會想要考慮轉換為其到 Microsoft SQL Server 資料庫最佳化效能、 擴充、 可用性、 安全性、 可靠性和修復能力。

本文內容

關於轉換 Microsoft Office Access 資料庫

使用轉換精靈

資料庫物件如何轉換

關於轉換 Microsoft Office Access 資料庫

轉換是從 Access 資料庫的部分或所有資料庫物件移轉至新的或現有的 SQL Server 資料庫或 Access 專案 (.adp 中) 的程序。

轉換到 SQL Server 資料庫的優點

  • 高效能與延展性   在許多情況下,SQL Server 會提供更佳的效能與 Access 資料庫。SQL Server 也提供支援很大,超大型資料庫,這是更超過 2 gb 的 Access 資料庫的目前限制。最後,SQL Server 可以很有效率地處理平行 (以處理使用者要求使用單一程序中的多個原生執行緒) 的查詢和新增更多使用者時,最小化額外的記憶體需求。

  • 提高可用性   SQL Server 可讓您執行動態備份,[遞增] 或 [完成,在使用時的資料庫。因此,您不必強制使用者結束資料庫備份資料。

  • 改善安全性   使用受信任的連線,SQL Server 可以整合提供網路和資料庫,單一整合式的存取 Windows 系統安全採用最佳的兩個保全系統。如此可讓您更容易管理複雜的安全配置。

  • 立即修復能力   若系統失敗 (例如作業系統當機或停電),SQL Server 已復原的資料庫,在幾分鐘,沒有資料庫管理員操作與一致性的最後狀態的自動回復機制。

  • 以伺服器為基礎的處理   使用 SQL Server 的用戶端/伺服器設定處理在伺服器上的資料庫查詢結果用戶端在傳送前降低網路流量。讓伺服器進行處理時,通常會更有效率,尤其是使用大型資料集。

    您的應用程式也可以使用使用者定義函數、 預存程序和引動程序集中和共用應用程式邏輯、 商務規則和原則、 複雜的查詢、 資料驗證],以及參考完整性程式碼的伺服器上,而不是在用戶端。

轉換的方法

轉換精靈將資料庫物件和其包含的資料從 Access 資料庫移至新的或現有的 SQL Server 資料庫。

有三種方式,使用轉換精靈 ︰

  • 轉換所有資料庫物件從 Access 資料庫的存取都專案,以便您可以建立的用戶端/伺服器應用程式。這個方法需要一些變更其他應用程式和修改程式碼和複雜的查詢。

  • 轉換只資料或從 Access 資料庫的資料定義,以 SQL Server 資料庫。

  • 建立 Access 資料庫前端 SQL Server 資料庫後端,以便您可以建立前端或後端資料庫應用程式。這個方法需要修改極少應用程式,因為程式碼仍使用 Access 資料庫引擎 (ACE)。

前轉換的 Access 資料庫

在轉換之前 Access 資料庫的 SQL Server 資料庫或 Access 專案,請考慮下列動作 ︰

  • 備份資料庫    雖然轉換精靈並不會移除任何資料,或資料庫物件從您的 Access 資料庫,建議您先建立備份檔案複製您之前在轉換的 Access 資料庫。

  • 確保您有足夠的磁碟空間    您必須將包含轉換的資料庫的裝置上的適當的磁碟空間。轉換精靈最適合時有大量的磁碟空間。

  • 建立唯一索引    連結的資料表必須擁有唯一索引,可在 Access 中更新。轉換精靈能轉換現有的唯一索引,但是無法建立在不存在。如果您想要在更新您的資料表,請確定您新增至每個之前轉換的 Access 資料表的唯一索引。

  • 指定您自己的 SQL Server 資料庫的適當權限

    • 轉換到現有的資料庫,您需要建立資料表和建立預設權限。

    • 若要建立新的資料庫,您需要建立資料庫的權限,與選取的權限的母片的系統資料表資料庫。

Access 2007 轉換精靈已最佳化而適合使用 Microsoft SQL Server 2000 和 SQL Server 2005。

頁面頂端​

使用轉換精靈

  • [資料庫工具] 索引標籤中移動資料] 群組中,按一下 [ SQL Server

    轉換精靈會啟動。

步驟 1 ︰ 選擇轉換到現有的資料庫或新的資料庫

步驟 2 ︰ 選擇轉換哪些資料表

步驟 3 ︰ 指定的屬性和要轉換的選項

步驟 4 ︰ 選擇如何轉換您的應用程式

轉換精靈報表

步驟 1 ︰ 選擇轉換到現有的資料庫或新的資料庫

在精靈的第一個頁面上,您可以指定您是否想要轉換到現有的 SQL Server 資料庫的 Access 資料庫,或建立新的 SQL Server 資料庫。

  • 使用現有的資料庫   如果您選取此選項,然後按 [下一步,Access 會顯示 [選取資料來源] 對話方塊,以便您可以建立 ODBC 連接至現有的 SQL Server 資料庫。

    ODBC 資料來源

    資料來源是加上存取該資料所需的連線資訊的資料來源。資料來源範例包括 Access、 SQL Server、 Oracle RDBMS、 試算表及文字檔案。連線資訊的範例包括伺服器位置、 資料庫名稱、 登入 ID、 密碼和各種說明如何連線至資料來源的 ODBC 驅動程式選項。

    在 [ODBC 架構,應用程式 (如 Access 或 Microsoft Visual Basic 程式) 連線至 ODBC 驅動程式管理員,又連線到資料來源 (在此例中,SQL Server 資料庫) 中使用特定的 ODBC 驅動程式 (例如 Microsoft SQL ODBC 驅動程式)。在 Access 中,您可以使用 [ODBC 資料來源連線到資料來源存取外部沒有內建的驅動程式。

    若要連線至這些資料來源,您必須執行下列動作 ︰

    • 在包含的資料來源的電腦上安裝適當的 ODBC 驅動程式。

    • 使用 [ ODBC 資料來源管理員儲存在 Microsoft Windows 登錄或 DSN 檔案] 或在 Visual Basic 程式碼傳遞的連線資訊直接至 ODBC 驅動程式管理員中的連線字串中的連線資訊,以定義資料來源名稱 (DSN)。

      機器資料來源

      機器資料來源儲存在 Windows 登錄中的使用者定義的名稱的特定電腦的連線資訊。只在定義的電腦上,您可以使用電腦的資料來源。有兩種類型的機器資料來源,使用者和系統。只有目前的使用者可以使用使用者資料來源,並只看到該使用者。系統的資料來源的電腦上的所有使用者可以都使用與電腦和系統服務上的所有使用者都都能看見。您想要新增的安全性,因為只登入的使用者可以檢視機器資料來源,提供無法遠端使用者中複製到另一部電腦時,尤其有用機器資料來源。

      檔案資料來源

      檔案 (也稱為 DSN 檔案) 的資料來源連線資訊儲存文字檔案時,不是 Windows 登錄,在和通常更具彈性比機器資料來源使用。例如您可以複製檔案資料來源至任何電腦 ︰ 使用正確的 ODBC 驅動程式,好讓您的應用程式可以依賴一致且正確的連線資訊的所有電腦其用途。或者,您可以將單一伺服器上的檔案資料來源、 共用在網路上的多部電腦之間,輕鬆地保持在一個位置的連線資訊。

      檔案資料來源也可以是無法共用的。無法共用的檔案資料來源位於單一電腦上,並指向機器資料來源。您可以使用無法共用的檔案資料來源,從檔案資料來源存取現有的機器資料來源。

      連線字串

      在模組中,您可以定義格式的連線字串,指定連線資訊。連接字串的連線資訊能直接傳送到 ODBC 驅動程式管理員,並有助於簡化您的應用程式移除的系統管理員或使用者第一次建立 DSN 之前使用資料庫的需求。

  • 建立新的資料庫   如果您選取此選項,然後按 [下一步,Access 會顯示的頁面,其中輸入新的 SQL Server 資料庫的相關資訊。

    • 哪些 SQL Server 您想要用於此資料庫?    輸入您想要使用的伺服器名稱。

    • 使用信任的連線    您可以使用受信任的連線,也就是 SQL Server 可以整合提供至 [網路和資料庫單一登入 Windows 作業系統的安全性。

    • 登入識別碼和密碼    如果您不是使用受信任的連線,請在伺服器上輸入的登入 ID 和密碼建立資料庫的權限的帳戶。

    • 您想要命名新的 SQL Server 資料庫?    輸入新的 SQL Server 資料庫的名稱。Access 會修訂名稱與現有的資料庫名稱的衝突並新增編號的後置字元 (例如 mydatabase 1)。

章節頂端

步驟 2 ︰ 選擇轉換哪些資料表

在此步驟中,選取您要轉換到 SQL Server 資料庫的資料表。選取您想要轉換的資料表,然後使用箭頭按鈕以將其移至 [匯出至 SQL Server ] 清單。或者,您可以按兩下將它從一份清單移到其他表格。

可用的表格] 清單中已包含除了 SQL Server 資料表的所有連結的資料表中的 SQL Server 資料庫。連結的資料表,指向 [SQL Server 資料庫已選取的轉換會自動出現在 [匯出至 SQL Server ] 清單方塊中,且無法移除。也排除了無法在瀏覽窗格目前可見的表格,包括隱藏的資料表和系統資料表。

提示: 名稱結尾 _local] 中的任何資料表排除以防止已經轉換的轉換表格的可用表格的清單。如果您想要轉換這些資料表一次,重新命名執行之前,先轉換精靈移除後置字元 _local]。

章節頂端

步驟 3 ︰ 指定的屬性和要轉換的選項

在此步驟中,您可以選取的資料表屬性轉換到 SQL Server 資料庫。根據預設,會轉換為預設選取所有的屬性。

附註: 根據預設,轉換精靈會轉換法律的 SQL Server 欄位名稱,Access 欄位名稱,並將 Access 資料類型轉換成相當於 SQL Server 資料類型。

想要轉換的資料表屬性

下表列出您可以轉換,並說明如何轉換精靈處理每個屬性 ︰

屬性

如果已選取的動作

索引

[轉換精靈會轉換所有的索引。

轉換精靈將 Access 的主索引鍵轉換為 [SQL Server 的索引,並將其標示為 [SQL Server 主索引鍵。如果您選擇要連結至 Access 資料庫的轉換 SQL Server 資料表,轉換精靈也會在前置字元 」 aaaaa 」 索引名稱。這是因為存取選擇第一個字母清單中的可用的索引的主索引鍵的索引,「 aaaaa 「 前置字元,可確保會選擇正確的索引。

所有其他索引保持他們的名稱,不正確的字元位置取代 「 _ 」 字元。唯一且非唯一存取索引成為唯一且非唯一 SQL Server 的索引。

連結的資料表必須擁有唯一索引,可在 Access 中更新。轉換精靈能轉換現有的唯一索引,但是無法建立在不存在。如果您希望能夠更新您的資料表中的資料轉換之後,請確定您新增至每個之前轉換的 Access 資料表的唯一索引。

驗證規則

轉換精靈] 會轉換為更新],然後插入觸發程序下列動作 ︰

  • 所有欄位的必要屬性

  • 資料表驗證規則

  • 記錄驗證規則

  • 欄位驗證規則

觸發程序是一系列的 SQL Server 表格相關聯的 SQL 陳述式。資料表可以有三個觸發程序,為每個命令,可以修改表格中的資料 ︰ 更新、 [插入] 和 [刪除] 命令。當執行命令時,自動執行觸發程序。轉換精靈會強制執行欄位層級驗證,因為 SQL Server 規則不允許您顯示自訂錯誤訊息中使用引動程序,而不是 SQL Server 規則。

每個驗證規則不一定一對一對應的觸發程序。每個驗證規則可能會變得多個引動程序的一部分,而且每個觸發程序可能會包含模仿幾個驗證規則的程式碼。

當您的 Access 欄位的 [必要] 屬性設定為 true 時,使用者無法插入的記錄與離開 [必要] 欄位的 null 值 (如果沒有繫結至欄位預設值) 或更新記錄時讓欄位 null。必要的欄位會轉換至 SQL Server 不允許 Null 值的欄位。

驗證文字

Access 資料庫驗證文字] 屬性會轉換為 Access 專案驗證文字] 屬性。這可讓 Access 好記的錯誤訊息會顯示在執行階段在限制式違反事件。

預設值

[轉換精靈會轉換所有都預設值] 屬性以美國國家局 (ANSI) 都預設的物件。

資料表關聯

[轉換精靈會轉換所有資料表的關聯。

您可以決定如何轉換資料表關聯和參考完整性,藉由使用更新、 插入或刪除引動程序,或使用宣告參考完整性 (DRI)。Access 參考完整性的相同方式定義 DRI 的運作基底表格 (一對多關聯 「 一 」 端) 的主索引鍵和外部索引的資料表 (通常是一對多關聯 「 多 」 端) 的外部索引鍵。

  • 使用 DRI    選取資料表的關聯性,並使用 DRI使用 DRI 強迫參考完整性。Access 資料庫的資料行驗證會轉換為 [與下表所示的驗證訊息的 SQL Server DRI 核取限制式。

Access 資料庫關聯

SQL Server 外部索引鍵

n 的文字

串聯更新

在 [刪除上更新串聯沒有動作

「 記錄無法刪除,因為 < 外部資料表 > 資料表包含相關的記錄。 」

串聯刪除

刪除串聯更新任何動作

「 您無法新增或變更一筆記錄,因為在表格 < 主 > 必要的記錄。 」

串聯更新
] 和 [串聯刪除

開啟刪除串聯更新串聯上

未設定值。

沒有 DRI

刪除任何動作上的更新任何動作

您無法新增、 變更或刪除這筆記錄,因為資料表 < 主 > < 外部資料表 > 間的關聯性限制。

  • 使用引動程序    如果您已經定義階層更新或刪除您的 Access 資料表關聯,在您想要保留轉換資料表中的此行為,請選取資料表的關聯性使用引動程序。這會轉換階層式更新,或刪除為強迫參考完整性的觸發程序。

    資料表關聯不一定一對一對應的觸發程序。每個關聯性可能會變得多個引動程序的一部分,或每個觸發程序可能包含模擬的幾個參考完整性規則功能的程式碼。子資料表上使用插入觸發程序,並刪除引動程序的父資料表上使用。

    附註: 若要閱讀的 SQL Server 資料庫資料庫圖表 DRI 必須存取。若要允許存取讀取資料庫圖表時透過引動程序強迫參考完整性,轉換精靈將 dri 放在 [資料庫關聯圖,但會關閉檢查外部索引鍵。

您想要包含何種選項?

  • 新增時間戳記欄位加入至資料表   SQL Server 會使用透過建立唯一值的欄位和記錄更新時,然後更新此欄位來表示已變更記錄的時間戳記欄位 (但不是變更)。連結資料表中,Access 會使用的值來判斷是否已變更記錄之前更新時間戳記欄位中。一般而言,時間戳記欄位會提供最佳效能及可靠性。沒有時間戳記,SQL Server 必須檢查記錄,以判斷是否有變更的記錄,其會降低執行效能中的所有欄位。

    下表描述可使用此清單中的設定 ︰

設定

描述

是的讓決定精靈

如果原始的 Access 資料表包含浮點數 (單一或點兩下),備忘或OLE 物件欄位轉換精靈所產生的 SQL Server 資料表,這些欄位中建立新的時間戳記欄位。

是我

轉換精靈建立所有轉換的資料表,其中包含哪些類型無論時間戳記的欄位。這可改善效能的轉換的 Access 資料表的可能不包含備忘]、 [OLE 物件] 或 [浮點數的欄位,但它有其他類型的欄位。

否,永遠不會

轉換精靈不會新增時間戳記欄位加入至資料表。

重要: 在連結 SQL Server 資料表中,存取不會檢查決定如果備忘或 OLE 物件欄位已變更,因為這些欄位可能大小和比較許多 mb 可能太網路密切且費時。因此,如果只已變更的文字或圖像的欄位,則沒有時間戳記欄位時,Access 會覆寫變更。此外,已變更時未指定,讓沒有時間戳記欄位時,Access 可能會決定時還沒有記錄的已變更的浮點數欄位的值可能會出現。

  • 僅建立的表格結構,不轉換任何資料   [轉換精靈會轉換到 SQL Server 預設的所有資料。如果您選取 [只建立資料表結構,不轉換任何資料的核取方塊,資料就只轉換結構。

章節頂端

步驟 4 ︰ 選擇如何轉換您的應用程式

在精靈的下一個頁面上,您可以選取下列三種不同的方式轉換 Access 資料庫應用程式。在下您所要進行的變更哪些應用程式?,選取下列選項之一 ︰

  • 建立新的 Access 用戶端/伺服器應用程式   如果您選取此選項時,轉換精靈會建立新的 Access 專案。轉換精靈會提示您輸入的名稱,預設值為目前的 Access 資料庫名稱,將 「 CS 」 的後置字元,,然後再將專案儲存為現有的 Access 資料庫的同一個位置。

    轉換精靈建立 Access 專案檔案,然後核所有資料庫物件的 Access 資料庫到 Access 專案。如果您沒有儲存密碼和使用者識別碼,然後開啟 Access 專案中的第一次 Access 會顯示資料連結屬性] 對話方塊,讓您可以連線至 SQL Server 資料庫。

  • 連結 SQL Server 資料表至現有的應用程式   如果您選取這個選項,轉換精靈會讓查詢、 表單、 報表和資料存取頁面使用新的 SQL Server 資料庫中的資料,而不是您的 Access 資料庫中的資料修改您的 Access 資料庫。Access 轉換精靈重新命名資料表轉換與後置字元 」 _local。 」例如,如果在轉換表格名稱的員工,表格會被重新命名您的 Access 資料庫中的 Employees_local。然後,轉換精靈會建立名為員工的連結的 SQL Server 資料表。

    附註: [轉換] 作業完成後,將無法再使用的資料表,並以 「 _local"字尾重新命名。不過,則保留本機的資料表,直到您確認轉換成功的建議。在稍後的日期,您可以刪除要縮小您的 Access 資料庫的本機資料表。請務必備份資料庫之前刪除所有的表格。

    原始的員工資料表為基礎的查詢、 表單、 報表和資料存取頁面現在會使用 [連結的 [SQL Server 員工] 資料表。原始的本機資料表中的欄位的內容許多新的本機資料表,包括、描述標題格式輸入遮罩,以及小數位數的繼承。

  • 沒有應用程式的變更   如果您只想要將資料複製到 SQL Server 資料庫,並不變更任何其他現有的 Access 資料庫應用程式,請選取這個選項。

儲存密碼和使用者識別碼   根據預設,轉換精靈會在 [現有的應用程式中建立連結的資料表,或建立 Access 專案,而不儲存的使用者名稱和密碼。這表示,系統會提示使用者的使用者名稱和密碼登入 SQL Server 資料庫每次。

如果您選取 [儲存密碼和使用者識別碼] 時,使用者可以連線至 SQL Server 資料庫,而不必登入。如果您選取建立新 Access 用戶端/伺服器應用程式時,Access 專案會儲存 OLE DB 連線字串中的使用者名稱密碼。

附註: 如果拒絕儲存密碼MSysConf表格設定連結的 SQL Server 資料表的任何應用程式變更選項已停用此選項。

轉換精靈報表

當您按一下 [完成時,轉換精靈建立報表,提供建立的所有物件的詳細的描述,和報表程序時所遇到的任何錯誤。轉換精靈中預覽列印],顯示該報表,您可以列印或儲存為 XPS] 或 [PDF 檔案,例如的報表時。當您關閉預覽列印] 視窗時,報表是不會儲存為 Access 物件。

轉換精靈報表包含下列資訊 ︰

  • 選擇要轉換的轉換參數,包括資料表屬性及如何您轉換。

  • 表格資訊,包括名稱、 資料類型、 索引、 驗證規則、 預設值],存取和 SQL Server 值的比較觸發程序,並加入時間戳記。

  • 任何錯誤,例如資料庫或交易記錄檔完整、 沒有足夠的權限、 資料庫或裝置無法建立資料表、 預設值,或略過的驗證規則,不強制關聯,查詢略過 (因為它無法轉譯 SQL Server 語法),以及表單或報表中的控制項和記錄來源轉換錯誤。

章節頂端

頁面頂端​

資料庫物件如何轉換

下列資料和資料庫物件取得轉換 ︰

  • 資料與資料類型   所有的 Access 資料庫的資料類型會轉換為其對等的 SQL Server。精靈將 Access 資料庫文字 Unicode Unicode 字串識別碼新增到所有的字串值並將 Unicode 前面的 n 個前置詞新增至所有的資料類型。

  • 查詢   

    • 沒有 ORDER BY 子句或參數的選取查詢轉換為檢視。

    • 巨集指令查詢會轉換成預存程序巨集指令查詢。Access 會將設定 NOCOUNT 之後參數宣告程式碼,請確定預存程序執行。

    • 選取查詢只參照資料表 (也稱為基底查詢),使用參數或 ORDER BY 子句會轉換為使用者定義函數。如有必要,上方 100%子句會新增至包含 ORDER BY 子句的查詢。

    • 使用具名的參數的參數查詢維持使用 Access 資料庫中的原始文字名稱,並會轉換為預存程序或內嵌使用者定義的函數。

      附註: 您可能需要手動轉換尚未轉換,例如 SQL 傳遞查詢、 資料定義查詢和交叉資料表查詢的查詢。您也可能必須手動轉換太深巢狀的查詢。

  • 表單、 報表和控制項   記錄來源ControlsSource資料來源] 屬性中的表單、 報表或控制項的 SQL 陳述式會保留在 [位置],並不會轉換成預存程序或使用者定義的函數。

  • 啟動屬性   轉換精靈] 會轉換下列啟動屬性 ︰

    StartUpShowDBWindow
    StartUpShowStatusBar
    AllowShortcutMenus
    AllowFullMenus
    AllowBuiltInToolbars
    AllowToolbarChanges
    AllowSpecialKeys
    UseAppIconForFrmRpt
    AppIcon
    AppTitle
    StartUpForm
    啟動
    啟動功能表列

  • 模組和巨集   轉換精靈模組或巨集,並不進行任何變更。您可能需要修改您的應用程式,以利用其完整的 SQL Server 的功能。如需詳細資訊,請參閱 MSDN 文章最佳化 Microsoft Office Access 應用程式連線至 SQL Server

頁面頂端​

附註: 機器翻譯免責聲明︰本文係以電腦系統翻譯而成,未經人為介入。Microsoft 提供此等機器翻譯旨在協助非英語系使用者輕鬆閱讀 Microsoft 產品、服務及技術相關內容。基於本文乃由機器翻譯而成,因此文中可能出現詞辭、語法、文法上之錯誤。

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

這項資訊有幫助嗎?

感謝您的意見反應!

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

×