使用升遷向?qū)?Access 數(shù)據(jù)移動至 SQL Server 數(shù)據(jù)庫
- 2016-07-29 10:39:00
- zstmtony 翻譯
- 4282
隨著時(shí)間的推移,大多數(shù)數(shù)據(jù)庫應(yīng)用程序都會增大,變得更加復(fù)雜,而且需要支持更多的用戶。在 Microsoft Office Access 應(yīng)用程序生命周期的某個(gè)時(shí)刻,您可能要考慮將其升遷至 Microsoft SQL Server 數(shù)據(jù)庫以優(yōu)化性能、可伸縮性、可用性、安全性、可靠性和可恢復(fù)性。
正 文:
本文內(nèi)容
· 關(guān)于升遷 Microsoft Office Access 數(shù)據(jù)庫
· 使用“升遷向?qū)?/span>”
· 數(shù)據(jù)庫對象如何得到升遷
關(guān)于升遷 Microsoft Office Access 數(shù)據(jù)庫
升遷是將部分或全部數(shù)據(jù)庫對象從 Access 數(shù)據(jù)庫遷移至新的或現(xiàn)有的 SQL Server 數(shù)據(jù)庫或新的 Microsoft Access 項(xiàng)目 (.adp) 的過程。
將數(shù)據(jù)庫升遷至 SQL Server 的好處
· 高性能和高可伸縮性 在許多情況下,SQL Server 提供的性能都優(yōu)于 Access 數(shù)據(jù)庫。SQL Server 還支持非常大的、以千吉字節(jié)度量的數(shù)據(jù)庫,這比當(dāng)前兩吉字節(jié)限制的 Access 數(shù)據(jù)庫大得多。最后,SQL Server 以并行方式處理查詢(在單一進(jìn)程內(nèi)使用多個(gè)本機(jī)線程處理用戶請求),而且在增加更多用戶時(shí)最大限度地降低額外的內(nèi)存需求,從而非常高效地工作。
· 可用性更好 SQL Server 允許您對使用中的數(shù)據(jù)庫進(jìn)行增量或完整的動態(tài)備份。這樣您就不必強(qiáng)制用戶退出數(shù)據(jù)庫來備份數(shù)據(jù)。
· 安全性提高 使用可信連接,SQL Server 可與 Windows 系統(tǒng)安全集成,利用兩個(gè)安全系統(tǒng)的最佳優(yōu)勢提供對網(wǎng)絡(luò)和數(shù)據(jù)庫的單一集成訪問。這使其更容易管理復(fù)雜的安全架構(gòu)。
· 即時(shí)可恢復(fù)性 在出現(xiàn)系統(tǒng)故障時(shí)(例如操作系統(tǒng)崩潰或停電),SQL Server具有的自動恢復(fù)機(jī)制可在幾分鐘內(nèi)將數(shù)據(jù)庫恢復(fù)到上一個(gè)一致的狀態(tài),而無需數(shù)據(jù)庫管理員的干預(yù)。
· 基于服務(wù)器的處理 在客戶端/服務(wù)器配置中使用 SQL Server 可降低網(wǎng)絡(luò)流量,原因是會先在服務(wù)器上處理數(shù)據(jù)庫查詢,然后再將結(jié)果發(fā)送至客戶端。讓服務(wù)器進(jìn)行處理通常要高效得多,特別是在處理大型數(shù)據(jù)集時(shí)。
您的應(yīng)用程序也可以使用服務(wù)器(而不是客戶端)上的用戶定義的函數(shù)、存儲過程和觸發(fā)器集中和共享應(yīng)用程序邏輯、業(yè)務(wù)規(guī)則和策略、復(fù)雜查詢、數(shù)據(jù)有效性和引用完整性代碼。
升遷方法
“升遷向?qū)?/span>”可以將數(shù)據(jù)庫對象及其包含的數(shù)據(jù)從 Access 數(shù)據(jù)庫移至新的或現(xiàn)有的 SQL Server 數(shù)據(jù)庫中。
可通過三種方法使用“升遷向?qū)?/span>”:
· 所有數(shù)據(jù)庫對象從 Access 數(shù)據(jù)庫升遷至 Access 項(xiàng)目,以便可以創(chuàng)建客戶端/服務(wù)器應(yīng)用程序。此方法需要對代碼和復(fù)雜查詢進(jìn)行一些額外的應(yīng)用程序更改和修改。
· 將數(shù)據(jù)或數(shù)據(jù)定義從 Access 數(shù)據(jù)庫升遷至 SQL Server 數(shù)據(jù)庫。
· 建 Access 數(shù)據(jù)庫前端和 SQL Server 數(shù)據(jù)庫后端,以便可以創(chuàng)建前端/后端應(yīng)用程序。此方法需要非常少的應(yīng)用程序修改,因?yàn)榇a仍然使用 Access 數(shù)據(jù)庫引擎 (ACE)。
升遷 Access 數(shù)據(jù)庫之前
在將 Access 數(shù)據(jù)庫升遷至 SQL Server 數(shù)據(jù)庫或 Access 項(xiàng)目之前,請考慮執(zhí)行以下操作:
· 備份您的數(shù)據(jù)庫 雖然“升遷向?qū)?/span>”不會從 Access 數(shù)據(jù)庫中刪除任何數(shù)據(jù)或數(shù)據(jù)庫對象,但是先創(chuàng)建 Access 數(shù)據(jù)庫的備份副本,然后再升遷仍不失為一個(gè)好主意。
· 確保您有足夠的磁盤空間 必須在將包含升遷數(shù)據(jù)庫的設(shè)備中具有足夠的磁盤空間。有充足的可用磁盤空間時(shí)“升遷向?qū)?/span>”運(yùn)行狀態(tài)最佳。
· 創(chuàng)建唯一索引 在 Access 中,鏈接表必須具有可更新的唯一索引。“升遷向?qū)?/span>”可以升遷現(xiàn)有的唯一索引,但是無法在不存在的情況下創(chuàng)建一個(gè)。如果希望能夠更新表,請確保向每個(gè) Access 表添加唯一索引,然后再升遷。
· 在 SQL Server 數(shù)據(jù)庫中為自己分配適當(dāng)?shù)臋?quán)限
· 若要升遷現(xiàn)有數(shù)據(jù)庫,您需要具有 Create TABLE 和 Create DEFAULT 權(quán)限。
· 若要構(gòu)建新數(shù)據(jù)庫,您需要具有 Create DATABASE 權(quán)限以及在 Master 數(shù)據(jù)庫的系統(tǒng)表中具有 Select 權(quán)限。
Access 2007 升遷向?qū)б呀?jīng)過優(yōu)化,可以用于 Microsoft SQL Server 2000 和 SQL Server 2005。
使用“升遷向?qū)?/span>”
· 在“數(shù)據(jù)庫工具”選項(xiàng)卡上的“移動數(shù)據(jù)”組中,單擊“SQL Server”。 將啟動“升遷向?qū)?/span>”。
· 步驟 1:選擇升遷至現(xiàn)有數(shù)據(jù)庫或新數(shù)據(jù)庫
· 步驟 2:選擇要升遷的表
· 步驟 3:指定要升遷的屬性和選項(xiàng)
· 步驟 4:選擇升遷應(yīng)用程序的方式
步驟 1:選擇升遷至現(xiàn)有數(shù)據(jù)庫或新數(shù)據(jù)庫
在向?qū)У牡谝豁撋?,指定是要?/span> Access 數(shù)據(jù)庫升遷至現(xiàn)有 SQL Server 數(shù)據(jù)庫還是創(chuàng)建新的 SQL Server 數(shù)據(jù)庫。
· 使用現(xiàn)有數(shù)據(jù)庫 如果選擇此選項(xiàng)并單擊“下一步”,Access 將顯示“選擇數(shù)據(jù)源”對話框,以便您可以創(chuàng)建至現(xiàn)有 SQL Server 數(shù)據(jù)庫的 ODBC 數(shù)據(jù)源連接。
關(guān)于 ODBC 數(shù)據(jù)源
數(shù)據(jù)源是數(shù)據(jù)的來源,其中包含訪問該數(shù)據(jù)所需的連接信息。Access、SQL Server、Oracle RDBMS、電子表格以及文本文件都是數(shù)據(jù)源的示例。連接信息的示例包括服務(wù)器位置、數(shù)據(jù)庫名稱、登錄 ID、密碼以及說明如何連接到數(shù)據(jù)源的各種 ODBC 驅(qū)動程序選項(xiàng)。
在 ODBC 體系結(jié)構(gòu)中,應(yīng)用程序(例如 Access 或 Microsoft Visual Basic 程序)連接到 ODBC 驅(qū)動程序管理器,然后該驅(qū)動程序管理器使用特定的 ODBC 驅(qū)動程序(例如 Microsoft SQL ODBC 驅(qū)動程序)連接到數(shù)據(jù)源(在此例中為 SQL Server 數(shù)據(jù)庫)。在 Access 中,您使用 ODBC 數(shù)據(jù)源連接到 Access 外部的數(shù)據(jù)源(沒有內(nèi)置驅(qū)動程序)。
若要連接到這些數(shù)據(jù)源,必須執(zhí)行以下操作:
在包含數(shù)據(jù)源的計(jì)算機(jī)上安裝適當(dāng)?shù)?/span> ODBC 驅(qū)動程序。
使用“ODBC 數(shù)據(jù)源管理器”將連接信息存儲在 Microsoft Windows 注冊表或 DSN 文件中,或者使用 Visual Basic 代碼中的連接字符串將連接信息直接傳遞給 ODBC 驅(qū)動程序管理器,從而來定義數(shù)據(jù)源名稱 (DSN)。
計(jì)算機(jī)數(shù)據(jù)源
計(jì)算機(jī)數(shù)據(jù)源在特定計(jì)算機(jī)的 Windows 注冊表中存儲連接信息(具有用戶定義的名稱)。只能在定義計(jì)算機(jī)數(shù)據(jù)源的計(jì)算機(jī)上使用這些數(shù)據(jù)源。有兩種類型的計(jì)算機(jī)數(shù)據(jù)源 —用戶和系統(tǒng)。用戶數(shù)據(jù)源只能由當(dāng)前用戶使用且僅對該用戶可見。系統(tǒng)數(shù)據(jù)源可由計(jì)算機(jī)上的所有用戶使用且對計(jì)算機(jī)和系統(tǒng)范圍服務(wù)的所有用戶可見。計(jì)算機(jī)數(shù)據(jù)源在您要提供更高的安全性時(shí)特別有用,因?yàn)橹挥械卿浀挠脩艨梢圆榭从?jì)算機(jī)數(shù)據(jù)源,且計(jì)算機(jī)數(shù)據(jù)源不能被遠(yuǎn)程用戶復(fù)制到其他計(jì)算機(jī)中。
文件數(shù)據(jù)源
文件數(shù)據(jù)源(也稱為 DSN 文件)在文本文件而不是 Windows 注冊表中存儲連接信息,而且使用起來通常比計(jì)算機(jī)數(shù)據(jù)源更加靈活。例如,可以將文件數(shù)據(jù)源復(fù)制到具有正確 ODBC 驅(qū)動程序的任何計(jì)算機(jī)中,以便應(yīng)用程序可以將一致、準(zhǔn)確的連接信息利用到它所使用的所有計(jì)算機(jī)。您也可以將文件數(shù)據(jù)源放到一個(gè)服務(wù)器上,在網(wǎng)絡(luò)中的許多計(jì)算機(jī)之間共享它,并在一個(gè)位置輕松維護(hù)連接信息。
文件數(shù)據(jù)源也可以是非共享的。非共享的文件數(shù)據(jù)源駐留在單臺計(jì)算機(jī)上,并指向一個(gè)計(jì)算機(jī)數(shù)據(jù)源。使用非共享的文件數(shù)據(jù)源可以從文件數(shù)據(jù)源訪問現(xiàn)有的計(jì)算機(jī)數(shù)據(jù)源。
連接字符串
您可以在模塊中定義指定連接信息的格式化連接字符串。連接字符串可將連接信息直接傳遞給 ODBC 驅(qū)動程序管理器,而且可以使系統(tǒng)管理員或用戶不必先創(chuàng)建 DSN 然后再使用數(shù)據(jù)庫,從而簡化您的應(yīng)用程序。
· 新建數(shù)據(jù)庫 如果選擇此選項(xiàng)并單擊“下一步”,Access 將顯示要求您輸入有關(guān)新 SQL Server 數(shù)據(jù)庫的信息的頁面。
· 請選擇升遷該數(shù)據(jù)庫所用的 SQL Server: 鍵入要使用的服務(wù)器的名稱。
· 使用可信連接 可以使用可信連接,即 SQL Server 可以與 Windows 操作系統(tǒng)安全集成以提供對網(wǎng)絡(luò)和數(shù)據(jù)庫的單一登錄。
· 登錄 ID 和密碼 如果不使用可信連接,請鍵入在服務(wù)器上擁有 Create DATABASE 權(quán)限的帳戶的登錄 ID 和密碼。
· 請指定升遷后的 SQL Server 數(shù)據(jù)庫的名稱: 鍵入新 SQL Server 數(shù)據(jù)庫的名稱。如果與現(xiàn)有數(shù)據(jù)庫名稱沖突,Access 將修改該名稱,并添加數(shù)字后綴(例如 mydatabase 1)。
步驟 2:選擇要升遷的表
在此步驟中,選擇要升遷至 SQL Server 數(shù)據(jù)庫的 Access 表。選擇您要升遷的表,然后使用箭頭按鈕將其移至“導(dǎo)出到 SQL Server”列表。還可以雙擊表將其從一個(gè)列表移動到另一列表。
“可用表”列表中包含除了已經(jīng)在 SQL Server 數(shù)據(jù)庫中的 SQL Server 表以外的所有鏈接表。指向已經(jīng)選擇用于升遷的 SQL Server 數(shù)據(jù)庫的鏈接表會自動出現(xiàn)在“導(dǎo)出到 SQL Server”列表框中且無法刪除。還會排除當(dāng)前在導(dǎo)航窗格中不可見的表,包括隱藏的表和系統(tǒng)表。
提示 名稱以“_local”結(jié)尾的所有表都會從可用表列表中排除,以防止升遷已經(jīng)升遷過的表。如果確實(shí)要再次升遷這些表,請通過刪除后綴“_local”對其進(jìn)行重命名,然后再運(yùn)行“升遷向?qū)?/span>”。
步驟 3:指定要升遷的屬性和選項(xiàng)
在此步驟中,選擇要升遷至 SQL Server 數(shù)據(jù)庫的表屬性。默認(rèn)情況下,所有屬性都選擇進(jìn)行升遷。
注釋 默認(rèn)情況下,“升遷向?qū)?/span>”將 Access 字段名轉(zhuǎn)換為合法的 SQL Server 字段名,并且將 Access 數(shù)據(jù)類型轉(zhuǎn)換為等效的 SQL Server 數(shù)據(jù)類型。
升遷下列表屬性
下表列出了可以升遷的屬性,并說明了“升遷向?qū)?/span>”如何處理每個(gè)屬性: