91精品人妻互换日韩精品久久影视|又粗又大的网站激情文学制服91|亚州A∨无码片中文字慕鲁丝片区|jizz中国无码91麻豆精品福利|午夜成人AA婷婷五月天精品|素人AV在线国产高清不卡片|尤物精品视频影院91日韩|亚洲精品18国产精品闷骚

您當前位置:首頁 > 新聞頻道 > 技術動態(tài) > 正文
淺談網(wǎng)頁數(shù)據(jù)庫數(shù)據(jù)導入
[摘 要] 文章在介紹SQL Server 2000下的數(shù)據(jù)庫數(shù)據(jù)導入導出方法的基礎上,著重討論了如何實現(xiàn)基于網(wǎng)頁的數(shù)據(jù)庫數(shù)據(jù)導入。
[關鍵詞] SQL Server 2000;數(shù)據(jù)導入;DTS

1SQL Server 2000常用的數(shù)據(jù)導入導出方法
1.1通過DTS的設計器進行導入或導出
DTS的設計器功能強大,支持多任務,也是可視化界面,易于操作,但熟悉的人一般不多,如果只是進行SQL Server數(shù)據(jù)庫中部分表的移動,用這種方法最好,當然,也可以進行全部表的移動。在SQL Server Enterprise Manager中,展開服務器左邊的+,選擇數(shù)據(jù)庫,右擊,選擇All tasks/Import Data...(或All tasks/Export Data...),進入向導模式,然后按照提示一步一步進行就可以了,里面分得非常詳細,可以靈活的在不同數(shù)據(jù)源之間復制數(shù)據(jù),非常的方便,而且還可以另存成DTS包,如果以后還有相同的復制任務,直接運行DTS包就行,省時省力。也可以直接打開DTS設計器,方法是展開服務器名稱下面的Data Transformation Services,選Local Packages,在右邊的窗口中右擊,選New Package,就打開了DTS設計器。值得注意的是:如果源數(shù)據(jù)庫要拷貝的表有外鍵,注意移動的順序,有時要分批移動,否則外鍵主鍵,索引可能丟失,移動的時候選項旁邊的提示說的很明白,或者一次性的復制到目標數(shù)據(jù)庫中,再重新建立外鍵,主鍵,索引。其實在建立數(shù)據(jù)庫時,建立外鍵,主鍵,索引的文件應該和建表文件分開,而且用的數(shù)據(jù)文件也分開,并分別放在不同的驅動器上,有利于數(shù)據(jù)庫的優(yōu)化。
1.2利用Bcp工具
這種工具雖然在SQL Server 2000的版本中不推薦使用,但許多數(shù)據(jù)庫管理員仍很喜歡用它,尤其是用過SQL Server早期版本的人。不過Bcp確實有其局限性,首先它的界面不是圖形化的;其次它只是在SQL Server的表(視圖)與文本文件之間進行復制。但是另一方面,它也有其優(yōu)點:性能好,開銷小,占用內存少,速度快。
1.3利用備份和恢復
先對源數(shù)據(jù)庫進行完全備份,備份到一個設備(device)上,然后把備份文件復制到目的服務器上(恢復的速度快),進行數(shù)據(jù)庫的恢復操作,在恢復的數(shù)據(jù)庫名中填上源數(shù)據(jù)庫的名字(名字必須相同),選擇強制型恢復(可以覆蓋以前數(shù)據(jù)庫的選項),在選擇從設備中進行恢復,瀏覽時選中備份的文件就行了。這種方法可以完全恢復數(shù)據(jù)庫,包括外鍵,主鍵,索引。
1.4直接拷貝數(shù)據(jù)文件
把數(shù)據(jù)庫的數(shù)據(jù)文件(*.mdf)和日志文件(*.ldf)都拷貝到目的服務器,在SQL Server Query Analyzer中用語句進行恢復:
EXEC sp_attach_db @dbname = ’test’,
@filename1 = ’d:mssql7datatest_data.mdf’,
@filename2 = ’d:mssql7datatest_log.ldf’
這樣就把test數(shù)據(jù)庫附加到SQL Server中,可以照常使用,如果不想用原來的日志文件,可以用如下的命令:
EXEC sp_detach_db @dbname = ’test’
EXEC sp_attach_single_file_db @dbname = ’test’,
@physname = ’d:mssql7datatest_data.mdf’
這個語句的作用是僅僅加載數(shù)據(jù)文件,日志文件可以由SQL Server數(shù)據(jù)庫自動添加,但是原來的日志文件中記錄的數(shù)據(jù)就丟失了。
1.5在應用程序中定制
可以在應用程序(PB、VB)中執(zhí)行自己編寫的程序,也可以在Query Analyzer中執(zhí)行,這種方法比較靈活,其實是利用一個平臺連接到數(shù)據(jù)庫,在平臺中用的主要是SQL語句,這種方法對數(shù)據(jù)庫的影響小,但是如果用到遠程鏈接服務器,要求網(wǎng)絡之間的傳輸性能好,一般有兩種語句:
1.5.1select ... into new_tablename where ...
1.5.2insert (into) old_tablename select ... from ... where ...
這兩種方式的區(qū)別是前者把數(shù)據(jù)插入一個新表(先建立表,再插入數(shù)據(jù)),而后者是把數(shù)據(jù)插入已經(jīng)存在的一個表中,一般來說,第二條語句強于前者。
1.6SQL Server的復制功能
SQL Server提供了強大的數(shù)據(jù)復制功能,也是最不易掌握的,具體應用請參考相關資料,值得注意的是要想成功進行數(shù)據(jù)的復制工作,有些條件是必不可少的:
1.6.1 SQL Server Agent必須啟動,MSDTC必須啟動。
1.6.2 所有要復制的表必須有主鍵。
1.6.3 如果表中有text或image數(shù)據(jù)類型,必須使用with log選項,不能使用with no_log選項。
另外max text repl size選項控制可以復制的文本和圖像數(shù)據(jù)的最大規(guī)模,超過這個限制的操作將失敗。
1.6.4 在要進行復制的計算機上,應該至少是隱含共享,即共享名是C$或D$…。
1.6.5 為SQL Server代理使用的Windows NT賬號不能是一個本地的系統(tǒng)賬號,因為本地的系統(tǒng)賬號不允許網(wǎng)絡存取。
1.6.6 如果參與復制的服務器在另外的計算機域中,必須在這些域之間建立信任關系。



2實現(xiàn)基于網(wǎng)頁的數(shù)據(jù)庫數(shù)據(jù)導入
那么,如何實現(xiàn)基于網(wǎng)頁的數(shù)據(jù)庫數(shù)據(jù)導入呢,下面利用一個比較簡單的網(wǎng)絡介紹一下。
假設某局域網(wǎng)的網(wǎng)絡拓撲結構如下所示:

其中服務器A 和工作站B位于局域網(wǎng)內,工作站C 與服務器D 位于Internet內,局域網(wǎng)與Internet是物理隔離的,工作站C與工作站D 在同一個辦公室內,服務器A上的數(shù)據(jù)庫管理系統(tǒng)是Oracle, 服務器D上的數(shù)據(jù)庫管理系統(tǒng)是SQL Server 2000。由于工作需要,要求把服務器A 的有關數(shù)據(jù)導入到服務器D上。
2.1通常的工作流程:
2.1.1 在工作站B上運行客戶端軟件,將服務器A上數(shù)據(jù)導入到本地的dbf文件。
2.1.2 用移動硬盤 把dbf文件從工作站B拷貝到工作站C上。
2.1.3 在工作站C上,用ftp軟件將dbf文件上傳到服務器D上。
2.1.4 在工作站C上,運行遠程桌面軟件登錄到服務器D上。
2.1.5 在服務器D上,執(zhí)行DTS,將dbf文件中的數(shù)據(jù)導入到SQL Server
數(shù)據(jù)庫。
2.1.6 在服務器D上,運行相關存儲過程,做數(shù)據(jù)的后期處理工作。
在許多情況下,因為各種不同情況的需要,這個工作流程每天(甚至更短的時間內)就要執(zhí)行一次,非常繁瑣,而且使用手工操作,很容易出錯。下面提出一種改進的方案。
2.2改進后的工作流程
2.2.1 在工作站B上運行客戶端軟件,將服務器A上數(shù)據(jù)導入到本地的dbf文件。
2.2.2 用移動硬盤 把dbf文件從工作站B拷貝到工作站C上。
2.2.3 在工作站C上,打開服務器D上的相關網(wǎng)頁,利用網(wǎng)頁將dbf文件的數(shù)據(jù)導入到服務器D上的SQL Server數(shù)據(jù)庫中。
首先,要在網(wǎng)頁里實現(xiàn)上傳功能,把dbf文件從工作站C上傳到服務D上,這里就不多介紹了。要通過網(wǎng)頁把dbf文件導入到SQL Server 中,需要借助DTS可編程對象。DTS包含一組可編程COM對象,主要包含:DTS.Package、DTS.Connection、DTS.Step、DTS.ExecuteSQLTask、DTS.DataPumpTask、DTS.Transformation。
在ASP網(wǎng)頁里,通過用VBScript腳本創(chuàng)建調用DTS可編程COM對象,可以完成數(shù)據(jù)導入任務。SQL Server 2000有比較詳細的文檔資料介紹DTS編程 ,但沒有給一個具體的例子,如果僅參考文檔資料,難度比較大,開發(fā)時間也會相當長。這里大概的介紹一下開發(fā)程序的過程。首先,在SQL Sever 2000的DTS設計器里,創(chuàng)建DTS包,實現(xiàn)從dbf文件到SQL Server 2000的數(shù)據(jù)導入,把后期處理的存儲過程也添加到DTS包里。將這個DTS包另存為VBScript文件。有了這個VBScript文件,開發(fā)程序就容易多了,加入所需要的其他代碼,就可以在網(wǎng)頁里實現(xiàn)數(shù)據(jù)庫的數(shù)據(jù)導入。

參考文獻
【1】張莉,等.SQL Server數(shù)據(jù)庫原理及應用教程[M].北京:清華大學出版社,2003.
【2】梁方明.SQL Server2000數(shù)據(jù)庫編程[M].北京:北京希望電子出版社,2002.
【3】Louis Davidson(美).SQL Server2000數(shù)據(jù)庫設計權威指南[M].中國電力出版社,2002.
關鍵字:通訊,北京
About Us - 關于我們 - 服務列表 - 付費指導 - 媒體合作 - 廣告服務 - 版權聲明 - 聯(lián)系我們 - 網(wǎng)站地圖 - 常見問題 - 友情鏈接
Copyright©2014安裝信息網(wǎng) m.78375555.com. All rights reserved.
服務熱線:4000-293-296 聯(lián)系電話:0371-61311617 傳真:0371-55611201 QQ: 郵箱:zgazxxw@126.com 豫ICP備18030500號-4
未經(jīng)過本站允許,請勿將本站內容傳播或復制
安全聯(lián)盟認證