如何將SQL Server2008還原至SQL Server2005中
當(dāng)前位置:點(diǎn)晴教程→點(diǎn)晴OA辦公管理信息系統(tǒng)
→『 安裝指引&開(kāi)發(fā)建議 』
最近在使用SQL Server過(guò)程中,需要將SQL Server2008的數(shù)據(jù)還原到SQL Server2005中,結(jié)果發(fā)現(xiàn)按照傳統(tǒng)的方法直接還原是行不通的,2008能夠還原2005的備份文件,但2005卻不能還原2008的文件。 上網(wǎng)查了很多資料,有如下方法: 1、先在2008中將源數(shù)據(jù)庫(kù)生成為腳本文件“*.sql”; 2、在2005中執(zhí)行該腳本文件“*.sql”,可以生成源數(shù)據(jù)庫(kù)中所有的表、視圖、存儲(chǔ)過(guò)程; 3、將2008作為服務(wù)器端,2005作為客戶端; 4、在2008中,對(duì)源數(shù)據(jù)庫(kù)執(zhí)行“數(shù)據(jù)導(dǎo)出”(2005Express貌似不能使用這項(xiàng)功能,這也是這種方法的不足),將源數(shù)據(jù)庫(kù)所有表的數(shù)據(jù)導(dǎo)出客戶端2005相應(yīng)的表中(視圖也沒(méi)有必要導(dǎo),因?yàn)橐晥D的數(shù)據(jù)是由基表拼成的)。此時(shí)有兩點(diǎn)需要注意:第一、在選擇源數(shù)據(jù)庫(kù)中的表時(shí)需要選擇“啟用標(biāo)識(shí)插入”,否則會(huì)出現(xiàn)只讀列無(wú)法修改的錯(cuò)誤;第二、如果存在外鍵約束,需要注意表的導(dǎo)出順序,主表要先導(dǎo)出,然后再導(dǎo)出從表,否則會(huì)報(bào)Foreign Key的錯(cuò)誤; 5、如此便可將2008中的數(shù)據(jù)庫(kù)導(dǎo)入2005中。 但是用上述方法有幾點(diǎn)缺陷: 1、需要建立網(wǎng)絡(luò)將2008和2005兩個(gè)數(shù)據(jù)庫(kù)連接起來(lái),如果數(shù)據(jù)庫(kù)不在一臺(tái)電腦上,配置過(guò)程比較繁瑣; 2、在導(dǎo)出數(shù)據(jù)時(shí)由于外鍵約束的存在,需要判斷表的主從關(guān)系,如果數(shù)據(jù)庫(kù)中的表較多,要完成這個(gè)工作是十分麻煩的,并且極有可能漏掉某幾張表的數(shù)據(jù); 3、在執(zhí)行上訴步驟后發(fā)現(xiàn)一個(gè)致命的問(wèn)題,源數(shù)據(jù)庫(kù)中的觸發(fā)器并沒(méi)有被還原。 鑒于上述缺陷的存在,又仔細(xì)研究了上述方法,發(fā)現(xiàn)原來(lái)這個(gè)問(wèn)題可以非常簡(jiǎn)單的解決,方法如下: 1、首先,仍然在2008中將源數(shù)據(jù)庫(kù)生成為腳本文件“*.sql”,但是此時(shí)要注意,不要使用默認(rèn)的腳本選項(xiàng),此處應(yīng)該將“編寫觸發(fā)器腳本”、“編寫數(shù)據(jù)的腳本”等相關(guān)選項(xiàng)設(shè)置為TRUE; 2、在2005中執(zhí)行該腳本文件“*.sql”,可以生成源數(shù)據(jù)庫(kù)中所有的表、視圖、存儲(chǔ)過(guò)程、觸發(fā)器以及數(shù)據(jù)。 3、此時(shí),可以完美的將2008數(shù)據(jù)庫(kù)在2005中還原。 該方法簡(jiǎn)便易行,可以很好的解決SQL Server2008 數(shù)據(jù)庫(kù)文件還原至 SQL Server2005 中。 該文章在 2017/4/5 10:13:51 編輯過(guò) |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |