小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

使用SQL Server數(shù)據(jù)轉(zhuǎn)換服務(wù)升遷Access數(shù)據(jù)庫...

 hongmu 2006-05-24
使用SQL Server數(shù)據(jù)轉(zhuǎn)換服務(wù)升遷Access數(shù)據(jù)庫  [2003-11-18]       




開發(fā)者常常以Access作為原型或者用Access來開發(fā)不是很關(guān)鍵的應(yīng)用程序。但是,隨著公司業(yè)務(wù)的增長,要解決的問題會變得越來越復(fù)雜,Access環(huán)境可能無法滿足需要。目前,Access 2002的.mdb和.adp文件都將一個數(shù)據(jù)庫的長度限制在2 GB以內(nèi)。這意味著幾乎每個Access和SQL Server開發(fā)者最終都要將一個Access數(shù)據(jù)庫升遷成一個SQL Server數(shù)據(jù)庫。

由于升遷已成為極為常見的一個任務(wù),所以Access配套提供了一個“升遷向?qū)?#8221;。它雖然能完成這個工作,但操作過程并不簡單。SQL Server與Access的幾處不兼容的地方是該向?qū)o法處理的。你或許不知道,SQL Server的“數(shù)據(jù)轉(zhuǎn)換服務(wù)”(Data Transformation Services,DTS)也能升遷一個Access數(shù)據(jù)庫。下面讓我們比較這兩個向?qū)ВⅢw驗(yàn)如何使用DTS來升遷一個實(shí)際Access數(shù)據(jù)庫。這樣一來,你在遇到一個升遷任務(wù)時,就能選擇最有效的方式。

比較Access升遷向?qū)Ш虳TS 

Access升遷向?qū)ВˋUW)在Access內(nèi)部工作,能將數(shù)據(jù)拷貝到SQL Server表。相反,DTS將來自一個Access數(shù)據(jù)庫的數(shù)據(jù)拷貝到SQL Server表中。注意,你可將數(shù)據(jù)從一個文本文件或者一個OLE DB數(shù)據(jù)源(其中自然包括Access數(shù)據(jù)庫)導(dǎo)入SQL Server。導(dǎo)入文件的同時,還能對數(shù)據(jù)進(jìn)行轉(zhuǎn)換。

DTS的功能非常齊全,有的開發(fā)者認(rèn)為它比AUW強(qiáng)得多,理由是:

可在導(dǎo)入數(shù)據(jù)時更改列(字段)屬性。 
在導(dǎo)入期間創(chuàng)建查詢,限制實(shí)際導(dǎo)入的數(shù)據(jù)。 
但AUW也有DTS不具備的一個優(yōu)點(diǎn),那就是它能將一個Access前端鏈接到SQL Server數(shù)據(jù)。DTS則不然,它只能導(dǎo)入數(shù)據(jù),你不能將導(dǎo)入的數(shù)據(jù)鏈接到一個現(xiàn)有的前端。

使用DTS導(dǎo)入/導(dǎo)出向?qū)?br>
可采取幾種方式來執(zhí)行DTS:

在Windows【開始】菜單中,選擇【Microsoft SQL Server】,再選擇【導(dǎo)入和導(dǎo)出數(shù)據(jù)】。 
運(yùn)行企業(yè)管理器,連接到想導(dǎo)入數(shù)據(jù)的一個特定的服務(wù)器和數(shù)據(jù)庫,然后從【工具】菜單中選擇【數(shù)據(jù)轉(zhuǎn)換服務(wù)】|【導(dǎo)入數(shù)據(jù)】。在一個現(xiàn)有的數(shù)據(jù)庫中導(dǎo)入數(shù)據(jù)時,可使用這個選項(xiàng)。 
在企業(yè)管理器中,連接到要導(dǎo)入數(shù)據(jù)的服務(wù)器,再右擊【數(shù)據(jù)轉(zhuǎn)換服務(wù)】節(jié)點(diǎn)。選擇【所有任務(wù)】|【導(dǎo)入數(shù)據(jù)】。向?qū)ё铋_始會顯示一個提示性屏幕。請單擊【下一步】開始操作。 

指定數(shù)據(jù)源

升遷Access的第一步是指定數(shù)據(jù)源以及包含了待導(dǎo)入數(shù)據(jù)的實(shí)際文件。在本例中,請選擇Microsoft Access作為數(shù)據(jù)源,再找到Northwind.mdb數(shù)據(jù)庫(Access配套提供的示范數(shù)據(jù)庫)。它通常在以下文件夾中:
LocalDrive:\Program Files\Microsoft Office\Office10\Samples

注意,你可對任意Access數(shù)據(jù)庫進(jìn)行升遷。升遷不會對實(shí)際的.mdb文件及其數(shù)據(jù)產(chǎn)生任何影響。

如圖A所示,本例不要求你輸入密碼和用戶名。但是,在操作一個安全數(shù)據(jù)庫時,則可能必須管理管理員用戶名和密碼。換言之,在操作這種數(shù)據(jù)庫之前,你必須獲得管理權(quán)限。請單擊【下一步】繼續(xù)。

PICA:
如圖片顯示不完整請點(diǎn)擊查看
指定數(shù)據(jù)源和文件。如果操作的是安全數(shù)據(jù)庫,還需要輸入管理員用戶名和密碼

相反,如果使用的是AUW,它首先會要求你選擇新建一個SQL Server數(shù)據(jù)庫,或者選擇將SQL Server數(shù)據(jù)鏈接到一個Access前端。如前所述,DTS沒有提供鏈接選項(xiàng)。

選擇目的

在下一個屏幕中,要為導(dǎo)入的數(shù)據(jù)選擇一個目的(地)。你可選擇當(dāng)前服務(wù)器上的任何數(shù)據(jù)庫,也可以新建一個數(shù)據(jù)庫(本例采取的是第二種做法)。不要更改“目的”設(shè)置,雖然有幾個選項(xiàng)可供選擇,但本例的“目的”就是【用于SQL Server的Microsoft OLE DB提供程序】。

雖然能更改服務(wù)器,但本例不要求你這樣做。除此之外,還應(yīng)該保留【使用Windows身份驗(yàn)證】設(shè)置。只有SQL Server 2000才支持Windows身份驗(yàn)證。當(dāng)然,如果你的安全設(shè)置有所區(qū)別,那么也可以相應(yīng)地修改那個選項(xiàng)。

從【數(shù)據(jù)庫】下拉列表中選擇【<新建>】。隨后會出現(xiàn)【創(chuàng)建數(shù)據(jù)庫】對話框。請輸入新數(shù)據(jù)庫的名稱,Northwind的數(shù)據(jù)將導(dǎo)入這個數(shù)據(jù)庫中,如圖B所示。命名一個工作數(shù)據(jù)庫時,務(wù)必遵循你的公司的命名規(guī)范。單擊【確定】后,DTS會自動更新【數(shù)據(jù)庫】下拉列表中的名稱。單擊【確定】繼續(xù)。

PICB:
如圖片顯示不完整請點(diǎn)擊查看

指定新的數(shù)據(jù)庫名稱
限制要導(dǎo)入的數(shù)據(jù)

指定了Access數(shù)據(jù)源,并新建了一個SQL Server數(shù)據(jù)庫之后,就可開始將數(shù)據(jù)從數(shù)據(jù)源導(dǎo)入新的SQL Server數(shù)據(jù)庫(NorthwindonlocalSS)。但是,也許不能在一個會話中完成全部工作。雖然每次都能拷貝任意數(shù)量的表。但假如你需要用一個查詢來限制數(shù)據(jù),每次就只能操作那一個表。幸運(yùn)的是,額外的工作并不需要花多少時間。 

首先,讓我們創(chuàng)建一個查詢來限制“產(chǎn)品”表中的數(shù)據(jù),從而開始我們的拷貝過程。具體地說,我們只想拷貝那些活動的(而不是中止的)的產(chǎn)品。為此,請選擇【用一條查詢指定要傳輸?shù)臄?shù)據(jù)】,如圖C所示,再單擊【下一步】。

PICC:
如圖片顯示不完整請點(diǎn)擊查看

可拷貝幾個表,或者拷貝一個查詢的結(jié)果
 
圖D的SQL語句將要導(dǎo)入的記錄限制為那些沒有中止的產(chǎn)品。使用查詢生成器來顯示你要包括的表和列。對于像這樣的簡單語句來說,查詢生成器可能有點(diǎn)兒大材小用,但對于較復(fù)雜的語句來說,如果指定了幾個列的名稱,查詢生成器就能有效地防止你犯錯。單擊【分析】來驗(yàn)證語句的有效性。輸入了正確的SQL語句后,請單擊【下一步】。

PICD:
如圖片顯示不完整請點(diǎn)擊查看

輸入對數(shù)據(jù)進(jìn)行限制的SQL語句 

在下一個屏幕,單擊【預(yù)覽】按鈕,以便核實(shí)查詢結(jié)果。特別要注意的是,“中止”列中的每一個值都應(yīng)該為False。預(yù)覽完成后,單擊【確定】以關(guān)閉【查看數(shù)據(jù)】屏幕。如果想更改一個列的屬性,可以單擊【轉(zhuǎn)換】列中的省略號按鈕,但本例不要求你那樣做。相反,我們準(zhǔn)備在拷貝整個表時轉(zhuǎn)換數(shù)據(jù)。此時,你可能要考慮重命名即將生成的目的表。默認(rèn)情況下,向?qū)褂?#8220;結(jié)果”這個名稱。請?jiān)凇灸康摹苛兄袉螕?#8220;結(jié)果”,把它更改為“產(chǎn)品”。單擊【下一步】繼續(xù)。

下一個屏幕顯示了用于調(diào)度導(dǎo)入任務(wù)的選項(xiàng):

立即運(yùn)行——這個選項(xiàng)立即執(zhí)行導(dǎo)入任務(wù)(在DTS中稱為“包”)。如果選擇這個選項(xiàng),那么不會保存任務(wù),相反只是運(yùn)行它。升遷時請選擇這個選項(xiàng)。 
用復(fù)制方法發(fā)布目的數(shù)據(jù)——將目的表用于復(fù)制。使用這個選項(xiàng),DTS 導(dǎo)入/導(dǎo)出向?qū)ЫY(jié)束運(yùn)行后將啟動創(chuàng)建發(fā)布向?qū)А?nbsp;
調(diào)度DTS包以便以后執(zhí)行——如果想推遲到以后執(zhí)行,就用這個選項(xiàng)來創(chuàng)建任務(wù)。升遷一個數(shù)據(jù)庫時,你可能不需要保存任何導(dǎo)入任務(wù)。單擊這個選項(xiàng)旁邊的省略號按鈕,會顯示一系列調(diào)度選項(xiàng),本文不再贅述。 
保存DTS包——將導(dǎo)入的任務(wù)保存到以下任何位置之一:SQL Server、SQL Server Meta Data Services、結(jié)構(gòu)化存儲文件或者Visual Basic文件。 
就本例來說,請選擇【立即運(yùn)行】,如圖E所示,然后單擊【下一步】。

PICE:
如圖片顯示不完整請點(diǎn)擊查看

可選擇立即運(yùn)行導(dǎo)入任務(wù)。進(jìn)行升遷時,一般要選擇這個選項(xiàng)
 
為了執(zhí)行這個包,請?jiān)谧詈笠粋€屏幕上單擊【完成】。之后,向?qū)靡粋€對話框來顯示進(jìn)度。在狀態(tài)列表中,顯示了每一項(xiàng)單獨(dú)的任務(wù),并隨時指出它們是否完成。所有任務(wù)完成后,單擊【完成】關(guān)閉向?qū)А?br>現(xiàn)在,DTS已經(jīng)將一個表成功升遷為一個新的SQL Server數(shù)據(jù)庫(即NorthwindonlocalSS)。你還需要拷貝剩余的表,所以請重新啟動DTS。最開始,還是將數(shù)據(jù)源指定為Northwind數(shù)據(jù)庫。接著,從【數(shù)據(jù)庫】下拉列表中選擇【NorthwindonlocalSS】,單擊【下一步】。
在下一個屏幕中,選擇【從源數(shù)據(jù)庫復(fù)制表和視圖】,再單擊【下一步】。選擇想要拷貝的每一個表,如圖F所示。記住,你現(xiàn)在可以跳過“產(chǎn)品”表,因?yàn)閯偛乓呀?jīng)升遷了那個表。因此,請?jiān)诖似聊恢羞x擇除“產(chǎn)品”之外的其他所有表(和查詢)。

PICF:
如圖片顯示不完整請點(diǎn)擊查看

勾選你想導(dǎo)入的表和查詢(視圖)
 
轉(zhuǎn)換數(shù)據(jù)
在如圖F所示的屏幕中,你可更改數(shù)據(jù)源中的列屬性。下面來進(jìn)行一次簡單的示范轉(zhuǎn)換。請單擊“客戶”表右側(cè)的省略號按鈕。在隨后出現(xiàn)的屏幕中,請選擇“公司名稱”行,將“大小”從40改為60,如圖G所示。

PICG:
如圖片顯示不完整請點(diǎn)擊查看

更改一個列的“大小”屬性
 
單擊【編輯SQL】按鈕,查看向?qū)г赟QL Server上創(chuàng)建“客戶”表時會實(shí)際運(yùn)行的CREATE TABLE語句。你可在此窗口中直接修改SQL語句,但最好還是在上一個屏幕中,通過圖形用戶界面來進(jìn)行修改。

你也許會注意到,“客戶ID”列沒有標(biāo)記成“客戶”表的主鍵。通過修改語句,你可快速進(jìn)行修改。在本例中,你需要在第二行中插入關(guān)鍵字PRIMARY KEY NOT,如圖H所示。然后,單擊【確定】返回上一個屏幕。還要注意,“公司名稱”列的“大小”屬性確實(shí)為60。

PICH:
如圖片顯示不完整請點(diǎn)擊查看

檢查SQL CREATE TABLE語句
 
在【轉(zhuǎn)換】卡片中,你可修改用于將數(shù)據(jù)拷貝到SQL Server目的表的轉(zhuǎn)換腳本。此外,還可更改在這個過程中使用的腳本語言。雖然你在升遷Access數(shù)據(jù)庫時可能用不著這個卡片,但它在其他情況下可能非常有用。單擊【確定】返回前一個屏幕,再單擊【下一步】。和以前一樣,選擇【立即運(yùn)行】選項(xiàng),單擊【下一步】,再單擊【完成】,開始執(zhí)行向?qū)А?br>向?qū)瓿芍螅瑔螕簟敬_定】清除提示性消息(它告訴你拷貝了多少個表和查詢)。那條消息可能使你感到吃驚,因?yàn)樗暦Q拷貝了23個表,但Northwind實(shí)際只有8個表。下一節(jié)將解釋原因。請單擊【完成】關(guān)閉向?qū)А?br> 
查看結(jié)果
現(xiàn)在,我們可在企業(yè)管理器中查看結(jié)果。圖I展示了本地服務(wù)器上的新數(shù)據(jù)庫。在【表】列表中,現(xiàn)在包括了所有Access查詢。注意,向?qū)б褜⒉樵冝D(zhuǎn)換成了表。這種格式的查詢可能沒有任何用處,但這里只是希望向你說明像這樣升遷一個查詢時,最終會發(fā)生什么事情。真正進(jìn)行升遷時,你可能不希望拷貝查詢。

PICI:
如圖片顯示不完整請點(diǎn)擊查看

使用企業(yè)管理器查看新數(shù)據(jù)庫
 

在很大程度上,DTS對表的升遷是成功的。請注意我們進(jìn)行了特別處理的“產(chǎn)品”表的“中止”列,以及“客戶”表的“客戶ID”列。查看“產(chǎn)品”表的內(nèi)容(如圖J所示),你會發(fā)現(xiàn)每件產(chǎn)品的“中止”值為0(False)。這正是我們希望的結(jié)果,因?yàn)樵谏w“產(chǎn)品”表時,我們故意用一個查詢來限制了拷貝的數(shù)據(jù)。

PICJ:
如圖片顯示不完整請點(diǎn)擊查看

“中止”列只含有0(或False)值
 

圖K展示了設(shè)計(jì)視圖中的“客戶”表。如你所見,“客戶ID”列是表的主鍵。再查看其他表,你會發(fā)現(xiàn)向?qū)]有拷貝主鍵。相反,利用如圖H所示的SQL窗口,就可避免以后重新設(shè)置主鍵的必要。

PICK:
如圖片顯示不完整請點(diǎn)擊查看

向?qū)д_設(shè)置了這個表的主鍵
 
最后的工作
向?qū)Р粫詣訉⒅麈I從數(shù)據(jù)源拷貝到目的表。可像前面對“客戶”表做的那樣設(shè)置主鍵(參見圖H),也可在最終的目的表中設(shè)置它們。除此之外,還有幾件事情是向?qū)Р粫龅模?br>向?qū)Р槐3株P(guān)系;必須在SQL Server中重建它們。 
向?qū)Р粡?qiáng)制數(shù)據(jù)源中設(shè)置的引用完整性規(guī)則。 
升遷
面臨一個升遷任務(wù)時,Access的升遷向?qū)Щ蛘逽QL Server的DTS都可以考慮。兩者都能很好地升遷數(shù)據(jù)。但是,DTS向?qū)э@得更容易操作,而且功能齊全,不依賴于Access。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多