多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > 數據庫 > access > 將Access數據庫移植到SQL Server

將Access數據庫移植到SQL Server

來源:程序員人生   發布時間:2014-05-05 01:36:31 閱讀次數:3382次

隨著用戶對于企業級高性能數據庫的需求的增長用戶時常要從Microsoft Access Jet引擎的文件服務器環境下轉換到Microsoft SQL Server的客戶服務器環境Microsoft Office 中的Access  Upsizing Wizard可實現將數據表和查詢轉移到SQL Server 如果您用的是Access的較早的版本您可以先將它升級為Access 然后再使用其中的Upsizing Wizard從而將您的應用移植到SQL Server中 



如果您并不太愿意采用Access  和Upsizing Wizard來實現移植本文可以作為將Access 移植到SQL Server的一個指南轉移一個Access上的應用首先需要將數據轉移到SQL Server然后將查詢轉移進數據庫或是轉移為SQL文件以備稍后執行最后要采取的步驟是移植應用程序 

數據庫移植中用到的SQL Server 工具 

SQL Server管理器(SQL Server Enterprise Manager) 
SQL Server管理器 允許對SQL Server以及SQL Server中的對象進行企業級的配置和管理SQL Server管理器提供一個強有力的scheduling引擎高度的容錯力和一個嵌入式的復制管理界面使用SQL Server管理器可以實現以下功能 

管理連接和用戶許可 
創建腳本程序 
管理SQL Server對象的備份 
備份數據和事務處理日志 
管理表視圖存儲過程觸發器索引規則默認值以及用戶定義的數據類型 
建立全文本索引數據庫圖表和數據庫維護計劃 
輸入和輸出數據 
轉換數據 
執行各種網絡管理任務 

在以Microsoft Windows NT為操作系統的計算機中SQL Server Manager由SQL Server Setup進行安裝并被默認為服務器組件而在運行著Windows NT 和Microsoft Windows 的機器上它將被默認為客戶方組件您將從SQL Server Manager的圖形用戶界面中啟動數據轉移服務(DTSData Transformation Services) 


數據轉移服務(Data Transformation Services DTS) 
數據轉移服務允許您在多種異構數據源之間輸入和輸出數據這些數據源采用基于數據庫的OLE體系結構或在使用SQL Server 的多個計算機之間轉移數據庫和數據庫對象您還可以通過運用數據轉移服務更便捷地在一個在線事務處理系統(OLTP)中建立數據倉庫和數據中心 


DTS Wizard允許您交互地創建DTS包通過OLE DB和ODBC來輸入輸出驗證和轉移數據DTS Wizard還允許您在關系型數據庫之間拷貝圖解(schema)和數據 

SQL Server 查詢分析器(Query Analyzer) 
SQL Server 查詢分析器是一種圖形化的查詢工具通過它您可以分析一個查詢同時執行多個查詢查看數據和獲取索引建議SQL Server 查詢分析器提供了showplan選項可用來顯示SQL Server查詢優化器所選擇的數據提取方法 

SQL Server Profiler 
SQL Server Profiler可以實時地捕獲數據庫服務器活動的連續記錄SQL Server Profiler允許您監控SQL Server產生的事件過濾基于用戶指定標準的事件或將操作步驟輸出到屏幕文件或數據表運用SQL Server Profiler您可以重新執行所捕獲的上一次操作這種工具可以幫助應用程序開發者識別那些可能會降低應用程序性能的事務處理在將一個基于文件體系結構的應用程序移植到客戶/服務器結構中時該特性是很有用的因為它的最后一步包括對面向新的客戶/服務器環境的應用程序進行優化 


轉移表和數據 
使用DTS Wizard將您的Access數據轉移到SQL Server可采取以下步驟 

在 SQL Server Manager(Enterprise Manager)的工具菜單中鼠標指向Data Transformation Services 然后點擊Import Data 
選擇數據源( Choose a Data Source)的對話窗口中選擇Microsoft Access為數據源然后輸入您的.mdb文件名(mdb為文件擴展名)或者選擇瀏覽文件 
選擇數據目標(Choose a Destination)的對話窗口中選擇Microsoft OLE DB Provider for SQL Server再選擇好數據庫服務器然后點擊所需的認證模式 
指定表備份或查詢( Specify Table Copy or Query)的對話窗口中點擊拷貝表(Copy tables) 
選擇數據源的對話窗口中點擊選擇所有項( Select All) 


移植Microsoft Access查詢 
您可以將Access的查詢以下面的格式之一轉移至SQL Server中 

事務處理SQL腳本程序(TransactSQL s cripts ) 
事務處理SQL語句通常是由數據庫程序調用的但是您也可以使用SQL Server 中包含的SQL Server 查詢分析器直接運行它們SQL Server 查詢分析器可幫助開發者測試事務處理SQL語句或運行那些執行查詢處理數據操作(插入修改刪除)和數據定義(創建表)的事務處理SQL語句 


存儲過程(Stored procedures ) 
開發者可以將大部分產生自Access查詢(查找插入修改刪除)的事務處理SQL語句轉移至存儲過程用事務處理SQL語句書寫的存儲過程可以用來對您的數據存取打包并使之標準化而且存儲過程實際上是存儲在數據庫中的存儲過程可以帶參數也可不帶參數可以由數據庫程序調用或者由SQL Server查詢分析器手動執行 

視圖(Views ) 
視圖是從一個或多個表中顯示特定的行和列的虛擬表它們允許用戶可以不直接執行構成查詢基礎的復雜連接而建立查詢視圖不支持參數的使用連接多個數據表的視圖不能用INSERT UPDATE或 DELETE語句來修改視圖由事務處理SQL語句調用也可用于SQL Server查詢分析器中運行的程序段SQL Server視圖和SQL標準不支持視圖中的ORDER BY排序子句如欲了解事務處理SQL存儲過程和視圖的其他信息請參閱SQL Server 在線參考書 


Access查詢類型的SQL Server移植選擇與建議 
一個SELECT語句可以存儲在事務處理SQL文件存儲過程或是視圖中建立存儲過程是將數據庫應用開發與數據庫設計的物理實施分開的最佳方法存儲過程可在一處創建而由應用程序調用 
如果存儲過程所基于的數據庫變化了而存儲過程經過仔細的修改以反應這些變化則對存儲過程的調用將不會受到破壞 

交叉表(CROSSTAB) 
交叉表經常用于總結報表 

一個Access的交叉表可以通過SQL程序段存儲過程或視圖中的事務處理SQL語句來執行每當發出一個查詢時數據連接被重現執行以確保最近的數據得到使用 

根據實際應用情況比較合適的方法是將交叉表中的數據存儲為一個臨時表(參考下面的MAKE TABLE)臨時表對資源的需求比較少但是臨時表在建立的同時只提供對數據的一個快照(snapshot) 

創建表(MAKE TABLE) 
Access中的MAKE TABLE( 創建表)可以通過事務處理SQL腳本程序或存儲過程中的事務處理SQL語言的建表語句CREATE TABLE來執行語法如下所示 
SELECT [ ALL | DISTINCT ] 
[ {TOP integer | TOP integer PERCENT} [ WITH TIES] ] 
<select_list> 
[ INTO new_table ] 
[ FROM {<table_source>} […n] ] 
[ WHERE <search_condition> ] 
[ GROUP BY [ALL] group_by_expression […n] 
[ WITH { CUBE | ROLLUP } ] 
CREATE TABLE mytable (low int high int) 

UPDATE(修改) 
UPDATE語句可以存儲在事務_SQL腳本程序中然而比較好地執行UPDATE語句的方法是創建一個存儲過程 

APPEND(添加) 
ALLEND語句可以存儲在事務_SQL腳本程序中然而比較好地執行APPEND語句的方法是創建一個存儲過程 


移植Microsoft Access的查詢到存儲過程和視圖 

每個Access查詢都必須用以下的一系列語句替換 
CREATE PROCEDURE <NAME_HERE> AS 
< SELECT UPDATE DELETE INSERT CREATE TABLE statement from Microsoft Access > 
GO 

CREATE VIEW <NAME_HERE> AS 
<Place (SELECT only with no parameters) Microsoft Access Query> 
GO 

對每個Access查詢應執行 

打開Access然后在SQL Server中打開SQL Server查詢分析器 
在Access的數據庫窗口中點擊Queriestab鍵然后點擊Design按鈕 
View菜單上點擊SQL按鈕 
將整個查詢粘貼到SQL Server查詢分析器中 
測試語法保存事務處理SQL語句以備后用或者在數據庫中執行這些語句您可以選擇將事務處理SQL語句保存到一段腳本程序中 

移植Microsoft Access查詢到事務處理SQL語句 

大部分的Access查詢應該轉換成存儲過程和視圖然而有一些應用程序開發者不太常用的語句可以存儲為事務處理SQL腳本一種以sql為文件擴展名的文本文件 這些文件可以在SQL Server查詢分析器中運行 

如果您打算將一些Access查詢轉換為sql文件的話可以考慮根據它們使用的方式有區別地將這些事務處理SQL語句分別放在幾個腳本程序中例如您可以將必須以同樣頻率運行的事務處理SQL語句歸類到同一個腳本中另一個腳本中則應包含所有只在某些條件下運行的事務處理SQL語句此外必須以一定順序執行的事務處理SQL語句應當歸類到一個不連續的腳本中 

將Access語句轉移到事務處理SQL 文件 

將語句拷貝到SQL Server查詢分析器中 
使用藍色的多選項圖標分析語句 
在適當時候執行該語句 

要執行Access中的創建表(MAKE TABLE)的查詢任務的開發者在SQL Server中有幾種選擇開發者可創建下列對象之一 

一個視圖 
視圖具有動態的虛擬表的效果可提供最近的信息這是一個輸入/輸出強化器因為每當發出一個查詢時它都要求對數據表重現建立連接 

一個臨時表 
臨時表為已連接的用戶會話建立一個快照您可以建立局部的或全局的臨時表局部臨時表只在當前會話中可見而全局臨時表則在所有會話都是可見的在局部臨時表的名字前加上單個數字的前綴((#table_name))而在全局臨時表的名字前加上兩位數字的前綴(##table_name)對臨時表的查詢執行起來非常快因為它們取得一個結果集的時候通常只用一個表而不是將多個表動態地連接在一起來 
如欲了解臨時表的其他信息請參閱SQL Server在線參考書 

SQL Server 中的數據轉換服務(DTS)允許您通過創建包來實現臨時表建立的標準化自動化和進度安排例如當您移植Access 中的Northwind 范例數據庫時用于季度數據報表的交叉表可轉變為一個視圖或者一個可在規范基礎上建立臨時表的數據轉換如欲了解關于DTS的其他信息請參閱SQL Server在線參考書 

其他設計上的考慮 
下面是當您將您的Access應用移植到SQL Server時必須考慮的一些其他問題 

使用參數 
帶參數的SQL Server存儲過程需要一種不同于Access查詢的語法格式例如 
Access 格式 
查詢名Employee Sales By Country in NWINDmdb: 

PARAMETERS [Beginning Date] DateTime [Ending Date] DateTime; 
SELECT Orders[Order ID] [Last Name] &   & [First Name] AS Salesperson EmployeesCountry Orders[Shipped Date] [Order Subtotals]Subtotal AS [Sale Amount] 
FROM Employees INNER JOIN (Orders INNER JOIN [Order Subtotals] ON Orders[Order ID] = [Order Subtotals][Order ID]) ON Employees = Orders 
WHERE (((Orders[Shipped Date]) Between [Beginning Date] And [Ending Date])) 
ORDER BY [Last Name] &   & [First Name] EmployeesCountry Orders[Shipped Date]; 

SQL Server 格式 

CREATE PROCEDURE EMP_SALES_BY_COUNTRY 
@BeginningDate datetime 
@EndingDate datetime 
AS 
SELECT Orders[Order ID] [Last Name] +   + [First Name] AS Salesperson EmployeesCountry 
Orders[Shipped Date] [Order Subtotals]Subtotal AS [Sale Amount] 
FROM Employees INNER JOIN (Orders INNER J
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 日本二区| 亚洲综合欧美日韩 | 国产视频自拍一区 | 日本一区二区网站 | 国产欧美日韩免费一区二区 | 国产精品免费麻豆入口 | 在线观看国产免费高清不卡 | 1v1双性受整夜不拔bl | 99精品福利| 亚洲美女影院 | 69热视频 | 欧美黑人ⅹxxx片 | 亚洲 欧美 激情 另类 校园 | 成人夜视频 | 高清性欧美 | 免费久久精品视频 | 伊人性视频 | 成年人在线视频网站 | 最近免费中文字幕大全高清大全1 | 久久久久伊人 | 日韩三级免费 | 麻豆天堂 | c看欧美激情毛片 | 日韩欧美亚洲一区精选 | xxx.xxx日本| 亚洲老女人| 欧美日韩中文字幕 | 日本大臿亚洲香蕉大片 | 亚洲精品在线网址 | 最近的中文字幕在线国语 | 国产日韩欧美中文字幕 | 欧美精品 在线播放 | 欧美草逼网 | free性欧美| 亚洲成人黄色在线 | 毛片网站观看 | 亚洲视频在线观看免费 | 91在线九色 | a视频在线| 亚洲第一区二区快射影院 | 亚洲精品中文字幕乱码三区一二 |