資源描述:
《實現(xiàn)基于網(wǎng)頁的數(shù)據(jù)庫數(shù)據(jù)導(dǎo)入》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫。
1、實現(xiàn)基于網(wǎng)頁的數(shù)據(jù)庫數(shù)據(jù)導(dǎo)入[摘要]文章在介紹SQLServer2000下的數(shù)據(jù)庫數(shù)據(jù)導(dǎo)入導(dǎo)出方法的基礎(chǔ)上,著重討論了如何實現(xiàn)基于網(wǎng)頁的數(shù)據(jù)庫數(shù)據(jù)導(dǎo)入。[關(guān)鍵詞]SQLServer2000;數(shù)據(jù)導(dǎo)入;DTS1SQLServer2000常用的數(shù)據(jù)導(dǎo)入導(dǎo)出方法1.1通過DTS的設(shè)計器進(jìn)行導(dǎo)入或?qū)С鯠TS的設(shè)計器功能強(qiáng)大,支持多任務(wù),也是可視化界面,易于操作,但熟悉的人一般不多,如果只是進(jìn)行SQLServer數(shù)據(jù)庫中部分表的移動,用這種方法最好,當(dāng)然,也可以進(jìn)行全部表的移動。在SQLServerEnterpriseManager中,展開服務(wù)器左邊的
2、+,選擇數(shù)據(jù)庫,右擊,選擇Alltasks/ImportData...(或Alltasks/ExportData...),進(jìn)入向?qū)J?,然后按照提示一步一步進(jìn)行就可以了,里面分得非常詳細(xì),可以靈活的在不同數(shù)據(jù)源之間復(fù)制數(shù)據(jù),非常的方便,而且還可以另存成DTS包,如果以后還有相同的復(fù)制任務(wù),直接運行DTS包就行,省時省力。也可以直接打開DTS設(shè)計器,方法是展開服務(wù)器名稱下面的DataTransformationServices,選LocalPackages,在右邊的窗口中右擊,選NewPackage,就打開了DTS設(shè)計器。值得注意的是:如果源數(shù)
3、據(jù)庫要拷貝的表有外鍵,注意移動的順序,有時要分批移動,否則外鍵主鍵,索引可能丟失,移動的時候選項旁邊的提示說的很明白,或者一次性的復(fù)制到目標(biāo)數(shù)據(jù)庫中,再重新建立外鍵,主鍵,索引。其實在建立數(shù)據(jù)庫時,建立外鍵,主鍵,索引的文件應(yīng)該和建表文件分開,而且用的數(shù)據(jù)文件也分開,并分別放在不同的驅(qū)動器上,有利于數(shù)據(jù)庫的優(yōu)化。1.2利用Bcp工具這種工具雖然在SQLServer2000的版本中不推薦使用,但許多數(shù)據(jù)庫管理員仍很喜歡用它,尤其是用過SQLServer早期版本的人。不過Bcp確實有其局限性,首先它的界面不是圖形化的;其次它只是在SQLServe
4、r的表(視圖)與文本文件之間進(jìn)行復(fù)制。但是另一方面,它也有其優(yōu)點:性能好,開銷小,占用內(nèi)存少,速度快。1.3利用備份和恢復(fù)先對源數(shù)據(jù)庫進(jìn)行完全備份,備份到一個設(shè)備(device)上,然后把備份文件復(fù)制到目的服務(wù)器上(恢復(fù)的速度快),進(jìn)行數(shù)據(jù)庫的恢復(fù)操作,在恢復(fù)的數(shù)據(jù)庫名中填上源數(shù)據(jù)庫的名字(名字必須相同),選擇強(qiáng)制型恢復(fù)(可以覆蓋以前數(shù)據(jù)庫的選項),在選擇從設(shè)備中進(jìn)行恢復(fù),瀏覽時選中備份的文件就行了。這種方法可以完全恢復(fù)數(shù)據(jù)庫,包括外鍵,主鍵,索引。1.4直接拷貝數(shù)據(jù)文件把數(shù)據(jù)庫的數(shù)據(jù)文件(*.mdf)和日志文件(*.ldf)都拷貝到目的服務(wù)
5、器,在SQLServerQueryAnalyzer中用語句進(jìn)行恢復(fù):EXECsp_attach_db@dbname=’test’,@filename1=’d:mssql7datatest_data.mdf’,@filename2=’d:mssql7datatest_log.ldf’這樣就把test數(shù)據(jù)庫附加到SQLServer中,可以照常使用,如果不想用原來的日志文件,可以用如下的命令:EXECsp_detach_db@dbname=’test’EXECsp_attach_single_file_db@dbname=’test’,
6、@physname=’d:mssql7datatest_data.mdf’這個語句的作用是僅僅加載數(shù)據(jù)文件,日志文件可以由SQLServer數(shù)據(jù)庫自動添加,但是原來的日志文件中記錄的數(shù)據(jù)就丟失了。1.5在應(yīng)用程序中定制可以在應(yīng)用程序(PB、VB)中執(zhí)行自己編寫的程序,也可以在QueryAnalyzer中執(zhí)行,這種方法比較靈活,其實是利用一個平臺連接到數(shù)據(jù)庫,在平臺中用的主要是SQL語句,這種方法對數(shù)據(jù)庫的影響小,但是如果用到遠(yuǎn)程鏈接服務(wù)器,要求網(wǎng)絡(luò)之間的傳輸性能好,一般有兩種語句:1.5.1select...intonew_tablen
7、amewhere...1.5.2insert(into)old_tablenameselect...from...where...這兩種方式的區(qū)別是前者把數(shù)據(jù)插入一個新表(先建立表,再插入數(shù)據(jù)),而后者是把數(shù)據(jù)插入已經(jīng)存在的一個表中,一般來說,第二條語句強(qiáng)于前者。1.6SQLServer的復(fù)制功能SQLServer提供了強(qiáng)大的數(shù)據(jù)復(fù)制功能,也是最不易掌握的,具體應(yīng)用請參考相關(guān)資料,值得注意的是要想成功進(jìn)行數(shù)據(jù)的復(fù)制工作,有些條件是必不可少的:1.6.1SQLServerAgent必須啟動,MSDTC必須啟動。1.6.2所有要復(fù)制的表必須有主鍵
8、。1.6.3如果表中有text或image數(shù)據(jù)類型,必須使用withlog選項,不能使用withno_log選項。另外maxtextreplsize選項控制可以復(fù)制