SQL Server 2000與Excel之間數(shù)據(jù)導(dǎo)入導(dǎo)出默認(rèn)分類 2008-01-08 19:47:21 閱讀641 評(píng)論0 字號(hào):大中小 訂閱 參考http://www.pconline.com.cn/smb/yrjc/0612/935914_3.html 幾乎所有的數(shù)據(jù)庫管理者或者是與數(shù)據(jù)庫打過交道的朋友,幾乎都或多或少的了解并使用過數(shù)據(jù)導(dǎo)入導(dǎo)出的功能以便完成支持諸如數(shù)據(jù)合并、歸檔和分析等任務(wù),以及開發(fā)應(yīng)用程序或升級(jí)數(shù)據(jù)庫或服務(wù)器,而這一切的便利都已經(jīng)被SQL Server中的數(shù)據(jù)轉(zhuǎn)換服務(wù)(DTS)囊括其中,它提供了一套圖形化工具和可編程對(duì)象,以幫助管理員和開發(fā)人員和需要進(jìn)行數(shù)據(jù)維護(hù)的人員解決數(shù)據(jù)移動(dòng)問題,其中包括將數(shù)據(jù)從分散的數(shù)據(jù)源中提取出來,并且轉(zhuǎn)換、合并到一個(gè)或多個(gè)目標(biāo)位置??梢詫⑷蝿?wù)組、工作流操作以及約束條件收集起來形成DTS軟件包,然后安排它定期運(yùn)行或在某些事件發(fā)生后運(yùn)行。首先我們來先認(rèn)識(shí)一下什么是DTS,它是一組工具,用于在一個(gè)或多個(gè)數(shù)據(jù)源(如Microsoft SQL Server、Microsoft Excel或Microsoft Access)間導(dǎo)入、導(dǎo)出和轉(zhuǎn)換各種數(shù)據(jù)。通過OLE DB(一種數(shù)據(jù)訪問的開放式標(biāo)準(zhǔn))提供連接,通過用于ODBC的OLE DB提供程序來支持ODBC(開放式數(shù)據(jù)庫連接)數(shù)據(jù)源。 在這里我們將以具體的實(shí)例來介紹DTS數(shù)據(jù)的導(dǎo)入導(dǎo)出功能。例:使用DTS向?qū)?dǎo)出自己建立的dmtjxxb數(shù)據(jù)庫中的dmtjxxb_register表,到Excel表中。 操作步驟為: (1)啟動(dòng)SQL Server企業(yè)管理器(Enterprise Manager)后,點(diǎn)擊SQL Server組,選擇指定的服務(wù)器,如此次操作的數(shù)據(jù)庫是我本地的數(shù)據(jù)庫,如圖: SQL Server企業(yè)管理器 本地?cái)?shù)據(jù)庫 選中要導(dǎo)出的數(shù)據(jù)庫名稱,點(diǎn)擊鼠標(biāo)右鍵,在彈出的菜單點(diǎn)擊“所有任務(wù)”選擇“導(dǎo)出數(shù)據(jù)”選項(xiàng),如下圖所示,就會(huì)彈出數(shù)據(jù)導(dǎo)入導(dǎo)出向?qū)А?/p> (2)單擊“下一步”按鈕,打開選擇數(shù)據(jù)源對(duì)話框,如下圖所示: 首先在“數(shù)據(jù)源”旁的下拉列表中選擇數(shù)據(jù)源。在本例中選擇Microsoft OLE DB Provider for SQL Server。如果使用SQL Server認(rèn)證方式,則應(yīng)輸入訪問數(shù)據(jù)庫的合法用戶賬號(hào)和密碼,在數(shù)據(jù)庫旁的下拉列表中選擇dmtjxxb,如果列表中沒有列出您需要的數(shù)據(jù)庫可以點(diǎn)擊(刷新按鈕)。 (3)單擊“下一步”按鈕,打開“選擇目的”對(duì)話框,如下圖所示。在“目的”旁的下拉列表中選擇Microsoft Excel97-2000。“文件名”選擇一個(gè)你要導(dǎo)入的excel表中,本例以c:\test.xls為例(這里需要注意的是,文件名稱是選擇的,系統(tǒng)不能夠自動(dòng)創(chuàng)建文件,所以要建立這個(gè)test.xls文件。) (4)單擊“下一步”按鈕,打開“指定表復(fù)制或查詢”對(duì)話框,如下圖所示。在此處可以指定傳遞的內(nèi)容,可以傳遞表或某一查詢的數(shù)據(jù)結(jié)果集甚至于數(shù)據(jù)庫對(duì)象。在本例中選擇從源數(shù)據(jù)庫復(fù)制表和視圖(這樣就把全部的數(shù)據(jù)導(dǎo)出來了)。 5)單擊“下一步”打開“選擇表和視圖對(duì)話框”對(duì)話框,如圖所示。從中選擇一個(gè)或多個(gè)表或視圖進(jìn)行傳遞。通過“預(yù)覽”按鈕可對(duì)將要傳遞的數(shù)據(jù)進(jìn)行預(yù)覽。 (6)如果想定義數(shù)據(jù)轉(zhuǎn)換時(shí)源表和目標(biāo)表之間列的對(duì)應(yīng)關(guān)系,則單擊“轉(zhuǎn)換”列的方格按鈕,打開列映射和轉(zhuǎn)換對(duì)話框,如下圖所示。 其中各選項(xiàng)的含義如下: ·創(chuàng)建目的表:在從源表拷貝數(shù)據(jù)前首先創(chuàng)建目標(biāo)表,在缺省情況下總是假設(shè)目標(biāo)表不存在,如果存在則發(fā)生錯(cuò)誤、除非選中了“除去并重新創(chuàng)建目的表”選項(xiàng); ·刪除目的表中的行:在從源表拷貝數(shù)據(jù)前將目標(biāo)表的所有行刪除,仍保留目標(biāo)表上的約束和索引,當(dāng)然使用該選項(xiàng)的前提是目標(biāo)表必須存在; ·在目的表中追加行:把所有源表數(shù)據(jù)添加到目標(biāo)表中,目標(biāo)表中的數(shù)據(jù)、索引、約束仍保留。但是數(shù)據(jù)不一定追加到目標(biāo)表的表尾,如果目標(biāo)表上有聚簇索引,則可以決定將數(shù)據(jù)插入何處; ·除去并重新創(chuàng)建目的表:如果目標(biāo)表存在,則在從源表傳遞來數(shù)據(jù)前將目標(biāo)表、表中的所有數(shù)據(jù)、索引等刪除后重新創(chuàng)建新目標(biāo)表; ·啟用標(biāo)識(shí)插入:允許向表的標(biāo)識(shí)列中插入新值。 (7)在進(jìn)行數(shù)據(jù)轉(zhuǎn)換時(shí),可以通過腳本語言(如J script Per script Vb script)對(duì)源表中的某一列施加某種運(yùn)算(乘、除或?qū)⒃摲指畛蓭琢?、或?qū)琢泻喜⒊梢涣?,然后再將這種結(jié)果復(fù)制到目標(biāo)表。此時(shí)應(yīng)選中“列映射和轉(zhuǎn)換”對(duì)話框的“轉(zhuǎn)換”標(biāo)簽頁,并選中“在將信息復(fù)制到目的時(shí)對(duì)其進(jìn)行轉(zhuǎn)換”如下圖所示:
8)返回“選擇源表和視圖”對(duì)話框(即第5步的截圖),單擊“下一步”打開“保存、調(diào)度和復(fù)制包”對(duì)話框,如下圖所示。 在默認(rèn)選項(xiàng)區(qū)可以選擇與包有關(guān)的操作: ·立即運(yùn)行:表示立即運(yùn)行包; ·用復(fù)制方法發(fā)布目的數(shù)據(jù):表示讓由發(fā)布目標(biāo)來進(jìn)行復(fù)制; ·調(diào)度DTS包以便以后執(zhí)行:表示將包保存之后,在以后的某一規(guī)劃時(shí)間運(yùn)行。在“保存”選項(xiàng),選中“保存DTS包”,則將包進(jìn)行保存。 ·SQL Server:將包存儲(chǔ)在msdb數(shù)據(jù)庫中; ·SQL Server Meta Data Service:將包存儲(chǔ)在Repository中; ·Structured Storage File:以DTSCOM結(jié)構(gòu)的文件格式存儲(chǔ)。容易通過文件服務(wù)器進(jìn)行郵遞和分發(fā)。 ·Visual Basic File (9)單擊“下一步”,打開“保存DTS包”對(duì)話框,如下圖所示。在“名稱”輸入該包的名稱“新建包”,可以將包保存在本地服務(wù)器或其它的遠(yuǎn)程服務(wù)器,也可以選擇適當(dāng)?shù)恼J(rèn)證方式,如果選擇SQL Server認(rèn)證,要提供用戶名和密碼。 (10)單擊“下一步”,在“正在完成DTS導(dǎo)入/導(dǎo)出向?qū)?#8221;對(duì)話框中單擊“完成”,結(jié)束包的創(chuàng)建。如圖所示。 點(diǎn)擊“完成”按鈕,就完成了數(shù)據(jù)庫到excel的導(dǎo)出操作。看看你的c:\test.xls吧。反之如果將Excel表中的內(nèi)容導(dǎo)入到數(shù)據(jù)庫中,只需要在導(dǎo)入導(dǎo)出向?qū)抡{(diào)整源和目的數(shù)據(jù)即可。具體的操作朋友們可以自己嘗試一下哦! |
|