引言
當對企業級的高性能的數據庫的要求和需求增加時,客戶有時需要從文件棗服務器環境的Microsoft Access Jet引擎遷移到客戶棗服務器環境的Microsoft SQL Server。隨同微軟Office 2000發行的Access 2000 Upsizing Wizard(升級向導)可以把Access表格和查詢遷移到SQL Server 7.0。如果你使用Access的早期版本,你也可以通過升級到Access 2000,并使用升級向導把你的應用程序移植到SQL SERVER。
如果你不喜歡使用Access 2000和升級向導進行移植,那么這篇文章作為向遷移一個Access應用程序到SQL Server。要遷移Access應用程序,你需要首先把數據遷移到SQL Server 7.0,然后把Access查詢移植到數據庫或SQL文件,最后是移植應用程序。
●移植中使用的SQL Server工具
SQL Server中的一些工具可以幫助你移植Access數據和應用程序
*SQL Server企業管理器
SQL Server企業管理器允許對SQL Server和SQL Server對象的企業范圍的設置和管理。SQL Server企業管理器提供了一個強大的任務安排引擎、管理警告能力、以及內建的復制管理界面。你還可以用SQL Server企業管理器來:
管理登錄和用戶權限
創建腳本
管理SQL SERVER對象的備份
備份數據庫和事務日志
管理表、視圖、存儲過程、觸發器、索引、規則、缺省設定和自定義數據類型
創建全文索引、數據庫圖表和數據庫維護方案
輸入輸出數據
轉換數據
執行不同的Web網絡管理任務
缺省情況下,SQL Server企業管理器被SQL Server作為服務器軟件的一部分安裝在運行Windows NT操作系統的計算機上,同時作為客戶軟件的一部分安裝在運行Windows NT和Windows 95操作系統的計算機上。你很可能要從SQL Server企業管理器的圖形用戶界面啟動數據轉換服務(Data Transformation Services,DTS)。
數據轉換服務(DTS)
數據轉換服務允許你在使用一個OLE DB結構的多個數據源之間輸入和輸出數據,這樣的數據源有Microsoft Excel電子表格,以及在運行SQL Server 7.0的多臺計算機之間執行數據庫和數據庫對象的傳輸。你還可以用DTS來執行數據轉換,以便用它來通過一個在線事務處理系統建立數據倉庫和數據商場。
DTS向導允許你交互的創建使用OLE DB和ODBC來進行輸入、輸出、確認和不同數據的轉換的DTS包。向導還允許你在相關數據庫之間拷貝計劃和數據。
SQL SERVER查詢分析器(Server Query Analyzer)
SQL SERVER查詢分析器是一個圖形化查詢工具,它允許你可視化的分析一個查詢方案,同時執行多重查詢、查看數據、獲得索引建議。SQL Server查詢分析器提供顯示方案(showplan)選項,可以用它來報告SQL Server查詢優化器選擇的數據獲取方案。
SQL Server輪廓(Server Profiler)
SQL SERVER輪廓實時捕捉服務器活動的連續的記錄。SQL Server輪廓允許你監控通過SQL Server產生的事件,過濾基于用戶指定準則的事件和直接跟蹤到顯示器、文件或者表的輸出。使用SQL Server輪廓,你可以重放先前的捕捉記錄。這個工具幫助應用程序開發人員鑒別可能使應用程序性能惡化的事務。當從一個基于文件的體系結構移植一個應用程序到一個基于客戶/服務器的體系結構時,它是很有幫助的,因為最后的步驟包含針對應用程序的新客戶/服務器環境優化該應用程序的操作。
移動表格和數據
使用DTS向導遷移你的Access數據到SQL Server,你可以使用這些步驟:
在SQL SERVER企業管理器中的Tools(工具)菜單上,選擇Data Transformation Services(數據轉換服務),然后選擇Import Data(導入數據)。
在Choose a Data Source(選擇數據源)對話框中選擇Microsoft Access as the Source,然后鍵入你的.mdb數據庫(.mdb文件擴展名)的文件名或通過瀏覽尋找該文件。
在Choose a Destination(選擇目標)對話框中,選擇Microsoft OLE DB Provider for SQL Server,選擇數據庫服務器,然后單擊必要的驗證方式。
在Specify Table Copy(指定表格復制)或Query(查詢)對話框中,單擊Copy tables(復制表格)。
在Select Source Tables(選擇源表格)對話框中,單擊Select All(全部選定)。
移植Microsoft Access查詢
你必須以這些格式之一遷移你現有的Access查詢到SQL Server:
Transact-SQL腳本
Transact-SQL語句通常從數據庫程序被調用,但是你可以使用包含在SQL Server 7.0中的SQL Server查詢分析器在數據庫中直接運行它們。SQL Server查詢分析器幫助開發者針對開發數據庫測試Transact-SQL語句,或運行Transact-SQL語句執行查詢、數據操作(INSERT、UPDATE、DELETE)或數據定義(CREATE TABLE)。
存儲過程
開發者可以把大多數源于Access查詢(SELECT、INSERT、UPDATE 和 DELETE)的Transact-SQL語句轉換為存儲過程。用Transact-SQL寫的存儲過程可以用來封裝和標準化你的數據訪問,存儲過程實際上存儲在數據庫內。存儲過程能帶或者不帶參數運行,可以從數據庫程序調用,也可以從SQL Server查詢分析器手動執行。
視圖
視圖作為虛擬的表格從一個或更多的表格顯露指定的行和列。它們允許用戶創建查詢而不用直接實現那些復雜的底層查詢。視圖不支持參數。向視圖加入一個更多的表格不能使用INSERT、UPDATE、或DELETE語句修改。視圖可以用Transact-SQL語句調用,并且也可以在SQL Server查詢分析器中的*.scripts中使用。SQL Server視圖和SQL-92標準不支持視圖中的ORDER BY 子句。
更多關于Transact-SQL、存儲過程或者視圖的信息,見SQL Server Books Online。
Access查詢類型
SQL Server移植選項和注釋
一個SELECT語句可以被存儲在Transact-SQL文件、存儲過程或者視圖中。
創建存儲過程是實現把數據庫應用程序開發同數據庫設計的物理實現分離的最好方法。存儲過程在一個地方創建,并且被應用程序調用。
如果底層數據庫改變了,并且存儲過程被仔細的修改以反映這些變化,則對存儲過程的調用不會被“中斷”。
CROSSTAB
交叉表經常用于摘要報告。
Access交叉表可以在SQL腳本中作為Transact-SQL SELECT語句實現,也可以作為存儲過程或者一個視圖實現。每次一個查詢被列舉的時候,數據節點將會重執行,請確保使用最新的數據。
根據不同的數據庫需要,也許把交叉表中的數據存儲為臨時表比較合適(請參看下一行的MAKE TABLE)。臨時表只需要很少的資源,但是只提供了創建臨時表的時刻,數據的一個照相。
MAKE TABLE
Access的MAKE TABLE可以在Transact-SQL腳本或者存儲過程中作為Transact-SQL的CREATE TABLE語句實現。語法如下:
SELECT [ ALL | DISTINCT ]
[ {TOP integer | TOP integer PERCENT} [ WITH TIES] ]