精品免费在线观看-精品欧美-精品欧美成人bd高清在线观看-精品欧美高清不卡在线-精品欧美日韩一区二区

17站長(zhǎng)網(wǎng)

將Access數(shù)據(jù)庫(kù)移植到SQL Server方法淺析

2023-3-16 16:18| 查看: 1772 |來(lái)源: 互聯(lián)網(wǎng)

隨著用戶(hù)對(duì)于企業(yè)級(jí)高性能數(shù)據(jù)庫(kù)的需求的增長(zhǎng),用戶(hù)時(shí)常要從MicrosoftAccessJet引擎的文件-服務(wù)器環(huán)境下轉(zhuǎn)換到MicrosoftSQLServer的客戶(hù)-服務(wù)器環(huán)境。MicrosoftO ...

隨著用戶(hù)對(duì)于企業(yè)級(jí)高性能數(shù)據(jù)庫(kù)的需求的增長(zhǎng),用戶(hù)時(shí)常要從MicrosoftAccessJet引擎的文件-服務(wù)器環(huán)境下轉(zhuǎn)換到MicrosoftSQLServer的客戶(hù)-服務(wù)器環(huán)境。MicrosoftOffice2000中的Access2000UpsizingWizard可實(shí)現(xiàn)將數(shù)據(jù)表和查詢(xún)轉(zhuǎn)移到SQLServer7.0中。如果您用的是Access的較早的版本,您可以先將它升級(jí)為Access2000,然后再使用其中的UpsizingWizard,從而將您的應(yīng)用移植到SQLServer中。

如果您并不太愿意采用Access2000和UpsizingWizard來(lái)實(shí)現(xiàn)移植,本文可以作為將Access2000移植到SQLServer的一個(gè)指南。轉(zhuǎn)移一個(gè)Access上的應(yīng)用首先需要將數(shù)據(jù)轉(zhuǎn)移到SQLServer,然后將查詢(xún)轉(zhuǎn)移進(jìn)數(shù)據(jù)庫(kù),或是轉(zhuǎn)移為SQL文件以備稍后執(zhí)行。最后要采取的步驟是移植應(yīng)用程序。

數(shù)據(jù)庫(kù)移植中用到的SQLServer工具

SQLServer管理器(SQLServerEnterpriseManager)

SQLServer管理器允許對(duì)SQLServer以及SQLServer中的對(duì)象進(jìn)行企業(yè)級(jí)的配置和管理。SQLServer管理器提供一個(gè)強(qiáng)有力的scheduling引擎,高度的容錯(cuò)力和一個(gè)嵌入式的復(fù)制管理界面。使用SQLServer管理器可以實(shí)現(xiàn)以下功能:

管理連接和用戶(hù)許可

創(chuàng)建腳本程序

管理SQLServer對(duì)象的備份

備份數(shù)據(jù)和事務(wù)處理日志

管理表、視圖、存儲(chǔ)過(guò)程、觸發(fā)器、索引、規(guī)則、默認(rèn)值以及用戶(hù)定義的數(shù)據(jù)類(lèi)型

建立全文本索引、數(shù)據(jù)庫(kù)圖表和數(shù)據(jù)庫(kù)維護(hù)計(jì)劃

輸入和輸出數(shù)據(jù)

轉(zhuǎn)換數(shù)據(jù)

執(zhí)行各種網(wǎng)絡(luò)管理任務(wù)

在以MicrosoftWindowsNT為操作系統(tǒng)的計(jì)算機(jī)中,SQLServerManager由SQLServerSetup進(jìn)行安裝,并被默認(rèn)為服務(wù)器組件,而在運(yùn)行著WindowsNT和MicrosoftWindows95的機(jī)器上,它將被默認(rèn)為客戶(hù)方組件。您將從SQLServerManager的圖形用戶(hù)界面中啟動(dòng)數(shù)據(jù)轉(zhuǎn)移服務(wù)(DTS,DataTransformationServices)。

數(shù)據(jù)轉(zhuǎn)移服務(wù)(DataTransformationServices,DTS)

數(shù)據(jù)轉(zhuǎn)移服務(wù)允許您在多種異構(gòu)數(shù)據(jù)源之間輸入和輸出數(shù)據(jù),這些數(shù)據(jù)源采用基于數(shù)據(jù)庫(kù)的OLE體系結(jié)構(gòu);或在使用SQLServer7.0的多個(gè)計(jì)算機(jī)之間轉(zhuǎn)移數(shù)據(jù)庫(kù)和數(shù)據(jù)庫(kù)對(duì)象;您還可以通過(guò)運(yùn)用數(shù)據(jù)轉(zhuǎn)移服務(wù),更便捷地在一個(gè)在線事務(wù)處理系統(tǒng)(OLTP)中建立數(shù)據(jù)倉(cāng)庫(kù)和數(shù)據(jù)中心。

DTSWizard允許您交互地創(chuàng)建DTS包,通過(guò)OLEDB和ODBC來(lái)輸入、輸出、驗(yàn)證和轉(zhuǎn)移數(shù)據(jù)。DTSWizard還允許您在關(guān)系型數(shù)據(jù)庫(kù)之間拷貝圖解(schema)和數(shù)據(jù)。

SQLServer查詢(xún)分析器(QueryAnalyzer)

SQLServer查詢(xún)分析器是一種圖形化的查詢(xún)工具,通過(guò)它您可以分析一個(gè)查詢(xún),同時(shí)執(zhí)行多個(gè)查詢(xún),查看數(shù)據(jù)和獲取索引建議。SQLServer查詢(xún)分析器提供了showplan選項(xiàng),可用來(lái)顯示SQLServer查詢(xún)優(yōu)化器所選擇的數(shù)據(jù)提取方法。

SQLServerProfiler

SQLServerProfiler可以實(shí)時(shí)地捕獲數(shù)據(jù)庫(kù)服務(wù)器活動(dòng)的連續(xù)記錄。SQLServerProfiler允許您監(jiān)控SQLServer產(chǎn)生的事件,過(guò)濾基于用戶(hù)指定標(biāo)準(zhǔn)的事件,或?qū)⒉僮鞑襟E輸出到屏幕、文件或數(shù)據(jù)表。運(yùn)用SQLServerProfiler,您可以重新執(zhí)行所捕獲的上一次操作。這種工具可以幫助應(yīng)用程序開(kāi)發(fā)者識(shí)別那些可能會(huì)降低應(yīng)用程序性能的事務(wù)處理。在將一個(gè)基于文件體系結(jié)構(gòu)的應(yīng)用程序移植到客戶(hù)/服務(wù)器結(jié)構(gòu)中時(shí)該特性是很有用的,因?yàn)樗淖詈笠徊桨▽?duì)面向新的客戶(hù)/服務(wù)器環(huán)境的應(yīng)用程序進(jìn)行優(yōu)化。

轉(zhuǎn)移表和數(shù)據(jù)

使用DTSWizard將您的Access數(shù)據(jù)轉(zhuǎn)移到SQLServer,可采取以下步驟:

在SQLServerManager(EnterpriseManager)的工具菜單中,鼠標(biāo)指向“DataTransformationServices”,然后點(diǎn)擊“ImportData.”

在“選擇數(shù)據(jù)源”(ChooseaDataSource)的對(duì)話窗口中,選擇MicrosoftAccess為數(shù)據(jù)源,然后輸入您的.mdb文件名(mdb為文件擴(kuò)展名)或者選擇瀏覽文件。

在“選擇數(shù)據(jù)目標(biāo)”(ChooseaDestination)的對(duì)話窗口中,選擇“MicrosoftOLEDBProviderforSQLServer”,再選擇好數(shù)據(jù)庫(kù)服務(wù)器,然后點(diǎn)擊所需的認(rèn)證模式。

在“指定表備份或查詢(xún)”(SpecifyTableCopyorQuery)的對(duì)話窗口中,點(diǎn)擊“拷貝表”(Copytables)。

在“選擇數(shù)據(jù)源”的對(duì)話窗口中,點(diǎn)擊“選擇所有項(xiàng)”(SelectAll)。

移植MicrosoftAccess查詢(xún)

您可以將Access的查詢(xún)以下面的格式之一轉(zhuǎn)移至SQLServer中:

事務(wù)處理SQL腳本程序(Transact-SQLscripts)

事務(wù)處理SQL語(yǔ)句通常是由數(shù)據(jù)庫(kù)程序調(diào)用的,但是您也可以使用SQLServer7.0中包含的SQLServer查詢(xún)分析器直接運(yùn)行它們。SQLServer查詢(xún)分析器可幫助開(kāi)發(fā)者測(cè)試事務(wù)處理SQL語(yǔ)句,或運(yùn)行那些執(zhí)行查詢(xún)處理、數(shù)據(jù)操作(插入,修改,刪除)和數(shù)據(jù)定義(創(chuàng)建表)的事務(wù)處理SQL語(yǔ)句。

存儲(chǔ)過(guò)程(Storedprocedures)

開(kāi)發(fā)者可以將大部分產(chǎn)生自Access查詢(xún)(查找,插入,修改,刪除)的事務(wù)處理SQL語(yǔ)句轉(zhuǎn)移至存儲(chǔ)過(guò)程。用事務(wù)處理SQL語(yǔ)句書(shū)寫(xiě)的存儲(chǔ)過(guò)程可以用來(lái)對(duì)您的數(shù)據(jù)存取打包,并使之標(biāo)準(zhǔn)化,而且存儲(chǔ)過(guò)程實(shí)際上是存儲(chǔ)在數(shù)據(jù)庫(kù)中的。存儲(chǔ)過(guò)程可以帶參數(shù),也可不帶參數(shù),可以由數(shù)據(jù)庫(kù)程序調(diào)用或者由SQLServer查詢(xún)分析器手動(dòng)執(zhí)行。

視圖(Views)

視圖是從一個(gè)或多個(gè)表中顯示特定的行和列的虛擬表。它們?cè)试S用戶(hù)可以不直接執(zhí)行構(gòu)成查詢(xún)基礎(chǔ)的復(fù)雜連接而建立查詢(xún)。視圖不支持參數(shù)的使用。連接多個(gè)數(shù)據(jù)表的視圖不能用INSERT,UPDATE或DELETE語(yǔ)句來(lái)修改。視圖由事務(wù)處理SQL語(yǔ)句調(diào)用,也可用于SQLServer查詢(xún)分析器中運(yùn)行的程序段。SQLServer視圖和SQL-92標(biāo)準(zhǔn)不支持視圖中的ORDERBY排序子句。如欲了解事務(wù)處理SQL,存儲(chǔ)過(guò)程和視圖的其他信息,請(qǐng)參閱SQLServer在線參考書(shū)。

Access查詢(xún)類(lèi)型的SQLServer移植選擇與建議

一個(gè)SELECT語(yǔ)句可以存儲(chǔ)在事務(wù)處理SQL文件、存儲(chǔ)過(guò)程或是視圖中。建立存儲(chǔ)過(guò)程是將數(shù)據(jù)庫(kù)應(yīng)用開(kāi)發(fā)與數(shù)據(jù)庫(kù)設(shè)計(jì)的物理實(shí)施分開(kāi)的最佳方法。存儲(chǔ)過(guò)程可在一處創(chuàng)建而由應(yīng)用程序調(diào)用。

如果存儲(chǔ)過(guò)程所基于的數(shù)據(jù)庫(kù)變化了,而存儲(chǔ)過(guò)程經(jīng)過(guò)仔細(xì)的修改以反應(yīng)這些變化,則對(duì)存儲(chǔ)過(guò)程的調(diào)用將不會(huì)受到破壞。

交叉表(CROSSTAB)

交叉表經(jīng)常用于總結(jié)報(bào)表。

一個(gè)Access的交叉表可以通過(guò)SQL程序段、存儲(chǔ)過(guò)程或視圖中的事務(wù)處理SQL語(yǔ)句來(lái)執(zhí)行。每當(dāng)發(fā)出一個(gè)查詢(xún)時(shí),數(shù)據(jù)連接被重現(xiàn)執(zhí)行以確保最近的數(shù)據(jù)得到使用。

根據(jù)實(shí)際應(yīng)用情況,比較合適的方法是將交叉表中的數(shù)據(jù)存儲(chǔ)為一個(gè)臨時(shí)表(參考下面的MAKETABLE),臨時(shí)表對(duì)資源的需求比較少,但是臨時(shí)表在建立的同時(shí)只提供對(duì)數(shù)據(jù)的一個(gè)快照(snapshot)。

創(chuàng)建表(MAKETABLE)

Access中的“MAKETABLE”(創(chuàng)建表)可以通過(guò)事務(wù)處理SQL腳本程序或存儲(chǔ)過(guò)程中的事務(wù)處理SQL語(yǔ)言的建表語(yǔ)句“CREATETABLE”來(lái)執(zhí)行。語(yǔ)法如下所示:

SELECT[ALL|DISTINCT]

[{TOPinteger|TOPintegerPERCENT}[WITHTIES]]

[INTOnew_table]

[FROM{}[,…n]]

[WHERE]

[GROUPBY[ALL]group_by_expression[,…n]

[WITH{CUBE|ROLLUP}]

CREATETABLEmytable(lowint,highint)

UPDATE(修改)

UPDATE語(yǔ)句可以存儲(chǔ)在事務(wù)_SQL腳本程序中,然而比較好地執(zhí)行UPDATE語(yǔ)句的方法是創(chuàng)建一個(gè)存儲(chǔ)過(guò)程。

APPEND(添加)

ALLEND語(yǔ)句可以存儲(chǔ)在事務(wù)_SQL腳本程序中,然而比較好地執(zhí)行APPEND語(yǔ)句的方法是創(chuàng)建一個(gè)存儲(chǔ)過(guò)程。

移植MicrosoftAccess的查詢(xún)到存儲(chǔ)過(guò)程和視圖

每個(gè)Access查詢(xún)都必須用以下的一系列語(yǔ)句替換:

CREATEPROCEDUREAS

GO

CREATEVIEWAS

GO

對(duì)每個(gè)Access查詢(xún)應(yīng)執(zhí)行:

打開(kāi)Access,然后在SQLServer中,打開(kāi)SQLServer查詢(xún)分析器。

在Access的數(shù)據(jù)庫(kù)窗口中點(diǎn)擊“Queries”tab鍵,然后點(diǎn)擊“Design”按鈕。

在“View”菜單上點(diǎn)擊“SQL”按鈕。

將整個(gè)查詢(xún)粘貼到SQLServer查詢(xún)分析器中。

測(cè)試語(yǔ)法,保存事務(wù)處理SQL語(yǔ)句以備后用,或者在數(shù)據(jù)庫(kù)中執(zhí)行這些語(yǔ)句。您可以選擇將事務(wù)處理SQL語(yǔ)句保存到一段腳本程序中。

移植MicrosoftAccess查詢(xún)到事務(wù)處理SQL語(yǔ)句

大部分的Access查詢(xún)應(yīng)該轉(zhuǎn)換成存儲(chǔ)過(guò)程和視圖。然而,有一些應(yīng)用程序開(kāi)發(fā)者不太常用的語(yǔ)句可以存儲(chǔ)為事務(wù)處理SQL腳本,一種以sql為文件擴(kuò)展名的文本文件。這些文件可以在SQLServer查詢(xún)分析器中運(yùn)行。

如果您打算將一些Access查詢(xún)轉(zhuǎn)換為sql文件的話,可以考慮根據(jù)它們使用的方式有區(qū)別地將這些事務(wù)處理SQL語(yǔ)句分別放在幾個(gè)腳本程序中。例如,您可以將必須以同樣頻率運(yùn)行的事務(wù)處理SQL語(yǔ)句歸類(lèi)到同一個(gè)腳本中。另一個(gè)腳本中則應(yīng)包含所有只在某些條件下運(yùn)行的事務(wù)處理SQL語(yǔ)句。此外,必須以一定順序執(zhí)行的事務(wù)處理SQL語(yǔ)句應(yīng)當(dāng)歸類(lèi)到一個(gè)不連續(xù)的腳本中。

將Access語(yǔ)句轉(zhuǎn)移到事務(wù)處理SQL文件

將語(yǔ)句拷貝到SQLServer查詢(xún)分析器中

使用藍(lán)色的多選項(xiàng)圖標(biāo)分析語(yǔ)句

在適當(dāng)時(shí)候執(zhí)行該語(yǔ)句

要執(zhí)行Access中的創(chuàng)建表(MAKETABLE)的查詢(xún)?nèi)蝿?wù)的開(kāi)發(fā)者在SQLServer中有幾種選擇。開(kāi)發(fā)者可創(chuàng)建下列對(duì)象之一:

一個(gè)視圖

視圖具有動(dòng)態(tài)的虛擬表的效果,可提供最近的信息。這是一個(gè)輸入/輸出強(qiáng)化器,因?yàn)槊慨?dāng)發(fā)出一個(gè)查詢(xún)時(shí)它都要求對(duì)數(shù)據(jù)表重現(xiàn)建立連接。

一個(gè)臨時(shí)表

臨時(shí)表為已連接的用戶(hù)會(huì)話建立一個(gè)快照。您可以建立局部的或全局的臨時(shí)表。局部臨時(shí)表只在當(dāng)前會(huì)話中可見(jiàn),而全局臨時(shí)表則在所有會(huì)話都是可見(jiàn)的。在局部臨時(shí)表的名字前加上單個(gè)數(shù)字的前綴((#table_name)),而在全局臨時(shí)表的名字前加上兩位數(shù)字的前綴(##table_name)。對(duì)臨時(shí)表的查詢(xún)執(zhí)行起來(lái)非常快,因?yàn)樗鼈內(nèi)〉靡粋(gè)結(jié)果集的時(shí)候通常只用一個(gè)表,而不是將多個(gè)表動(dòng)態(tài)地連接在一起來(lái)。

如欲了解臨時(shí)表的其他信息,請(qǐng)參閱SQLServer在線參考書(shū)。

SQLServer7.0中的數(shù)據(jù)轉(zhuǎn)換服務(wù)(DTS)允許您通過(guò)創(chuàng)建包來(lái)實(shí)現(xiàn)臨時(shí)表建立的標(biāo)準(zhǔn)化、自動(dòng)化和進(jìn)度安排。例如,當(dāng)您移植Access2.0中的Northwind范例數(shù)據(jù)庫(kù)時(shí),用于季度數(shù)據(jù)報(bào)表的交叉表可轉(zhuǎn)變?yōu)橐粋(gè)視圖或者一個(gè)可在規(guī)范基礎(chǔ)上建立臨時(shí)表的數(shù)據(jù)轉(zhuǎn)換。如欲了解關(guān)于DTS的其他信息,請(qǐng)參閱SQLServer在線參考書(shū)。

其他設(shè)計(jì)上的考慮

下面是當(dāng)您將您的Access應(yīng)用移植到SQLServer時(shí)必須考慮的一些其他問(wèn)題:

使用參數(shù)

帶參數(shù)的SQLServer存儲(chǔ)過(guò)程需要一種不同于Access查詢(xún)的語(yǔ)法格式,例如:

Access2.0格式:

查詢(xún)名:EmployeeSalesByCountry,inNWIND.mdb:

PARAMETERS[BeginningDate]DateTime,[EndingDate]DateTime;

SELECTOrders.[OrderID],[LastName]&","&[FirstName]ASSalesperson,Employees.Country,Orders.[ShippedDate],[OrderSubtotals].SubtotalAS[SaleAmount]

FROMEmployeesINNERJOIN(OrdersINNERJOIN[OrderSubtotals]ONOrders.[OrderID]=[OrderSubtotals].[OrderID])ONEmployees.=Orders.

WHERE(((Orders.[ShippedDate])Between[BeginningDate]And[EndingDate]))

ORDERBY[LastName]&","&[FirstName],Employees.Country,Orders.[ShippedDate];

SQLServer7.0格式:

CREATEPROCEDUREEMP_SALES_BY_COUNTRY

@BeginningDatedatetime,

@EndingDatedatetime

AS

SELECTOrders.[OrderID],[LastName]+","+[FirstName]ASSalesperson,Employees.Country,

Orders.[ShippedDate],[OrderSubtotals].SubtotalAS[SaleAmount]

FROMEmployeesINNERJOIN(OrdersINNERJ

本文最后更新于 2023-3-16 16:18,某些文章具有時(shí)效性,若有錯(cuò)誤或已失效,請(qǐng)?jiān)诰W(wǎng)站留言或聯(lián)系站長(zhǎng):17tui@17tui.com
·END·
站長(zhǎng)網(wǎng)微信號(hào):w17tui,關(guān)注站長(zhǎng)、創(chuàng)業(yè)、關(guān)注互聯(lián)網(wǎng)人 - 互聯(lián)網(wǎng)創(chuàng)業(yè)者營(yíng)銷(xiāo)服務(wù)中心

免責(zé)聲明:本站部分文章和圖片均來(lái)自用戶(hù)投稿和網(wǎng)絡(luò)收集,旨在傳播知識(shí),文章和圖片版權(quán)歸原作者及原出處所有,僅供學(xué)習(xí)與參考,請(qǐng)勿用于商業(yè)用途,如果損害了您的權(quán)利,請(qǐng)聯(lián)系我們及時(shí)修正或刪除。謝謝!

17站長(zhǎng)網(wǎng)微信二維碼

始終以前瞻性的眼光聚焦站長(zhǎng)、創(chuàng)業(yè)、互聯(lián)網(wǎng)等領(lǐng)域,為您提供最新最全的互聯(lián)網(wǎng)資訊,幫助站長(zhǎng)轉(zhuǎn)型升級(jí),為互聯(lián)網(wǎng)創(chuàng)業(yè)者提供更加優(yōu)質(zhì)的創(chuàng)業(yè)信息和品牌營(yíng)銷(xiāo)服務(wù),與站長(zhǎng)一起進(jìn)步!讓互聯(lián)網(wǎng)創(chuàng)業(yè)者不再孤獨(dú)!

掃一掃,關(guān)注站長(zhǎng)網(wǎng)微信

大家都在看

熱門(mén)排行

最近更新

返回頂部
主站蜘蛛池模板: 欧美一级做a爰片久毛片 | 国内精品91 | 综合视频网 | 久久草在线视频播放 | 久久久精品久久视频只有精品 | 起视碰碰97摸摸碰碰视频 | 国产香蕉视频 | 在线观看免费精品国产 | 国产国产人免费人成免费视频 | 欧美一级在线 | 国产乱理伦片a级在线观看 国产乱理伦片在线观看 | 欧美精品第二页 | 国产美女野外做爰 | 亚洲精品中文字幕一区 | 国产精品人成 | 欧美午夜在线播放 | 99久久99久久精品国产 | 女人18毛片久久鬼色 | 日韩美女一级片 | 国产一区二区三区国产精品 | 国产一区二区三区露脸 | 黄色短视频免费观看 | 77yyxf影音先锋 | 手机看片日韩日韩 | 国产久视频观看 | 春水堂在线 | 伊人成伊人成综合网2222 | 日韩欧美在线观看视频 | 免费高清精品国偷自产在线 | 草草影院欧美 | 黄色影院在线观看 | 欧美日韩中文一区二区三区 | 午夜激情视频在线播放 | 国产精品亚洲精品 | 乱一色一一区二区三区 | 中文一区二区视频 | 亚洲精品一区二区三区在 | 国产chinese在线视频 | 美女国产网站 | 日本h片a毛片在线播放 | 91精品国产免费久久久久久青草 |