正 文:
? ? 我們?cè)谡{(diào)試網(wǎng)站數(shù)據(jù)的時(shí)候,往往需要在不同版本的sql之間轉(zhuǎn)換,比如sql2000到sql2005/sql2008之間的互相轉(zhuǎn)換。微軟的SQL是高版本向低版本兼容,因此,在SQL2005中可以直接附加sql2000的數(shù)據(jù)庫(kù)文件。但是,反過(guò)來(lái)就有一定難度了。
????由于SQL?Server?2005的數(shù)據(jù)格式變化很大,無(wú)法直接將SQL?2005的備份文件直接還原到SQL?Server?2000中。但是可以通過(guò)數(shù)據(jù)導(dǎo)入導(dǎo)出向?qū)Щ蛘逽SIS包進(jìn)行數(shù)據(jù)傳輸。?
????大概的操作過(guò)程:為了避免類(lèi)型信息的丟失,建議先在SQL?SERVER?2005?Management?Studio里面通過(guò)Generate?Script產(chǎn)生數(shù)據(jù)庫(kù)表,視圖,存儲(chǔ)過(guò)程等對(duì)象的腳本,然后在SQL?Server?2000中創(chuàng)建一個(gè)數(shù)據(jù)庫(kù),并執(zhí)行該腳本文件,創(chuàng)建對(duì)象的schema。在這項(xiàng)工作完成以后,再通過(guò)SQL?Server?2005提供的數(shù)據(jù)導(dǎo)入導(dǎo)出向?qū)Вㄓ益I點(diǎn)擊數(shù)據(jù)庫(kù)->任務(wù)->導(dǎo)入/導(dǎo)出)進(jìn)行數(shù)據(jù)傳輸。?
????SQL?2005轉(zhuǎn)到SQL?2000的詳細(xì)的方法步驟:
1.?生成for?2000版本的數(shù)據(jù)庫(kù)腳本
?
打開(kāi)SQL?SERVER?2005?Management?Studio
--?打開(kāi)"對(duì)象資源管理器"(沒(méi)有的話按F8),?連接到你的實(shí)例?
--?右鍵要轉(zhuǎn)到2000的庫(kù)?
--?任務(wù)?
--?生成腳本?
--?在"腳本向?qū)?的"選擇數(shù)據(jù)庫(kù)"中,?確定選擇的是要轉(zhuǎn)到2000的庫(kù)?
--?勾選"為所選數(shù)據(jù)庫(kù)中的所有對(duì)象編寫(xiě)腳本"?
--?在接下來(lái)的"選擇腳本選項(xiàng)"中,?找到"為服務(wù)器版本編寫(xiě)腳本"項(xiàng),?選擇"SQL?Server?2000"?
--?其他選項(xiàng)根據(jù)需要設(shè)置?
--?最后把腳本保存到一個(gè)?tmp.sql?腳本文件?
2.?在SQL?2000中創(chuàng)建目標(biāo)數(shù)據(jù)庫(kù)
?
連接到SQL?Server?2000,選擇導(dǎo)入的數(shù)據(jù)庫(kù),打開(kāi)查詢分析器,執(zhí)行上面生成的腳本tmp.sql,以創(chuàng)建一個(gè)新的數(shù)據(jù)庫(kù)。這里僅僅是創(chuàng)建了數(shù)據(jù)庫(kù)表的結(jié)構(gòu)而已,還沒(méi)有數(shù)據(jù)。?
飄易 提醒:這里打開(kāi)tmp.sql腳本后,需要修改下默認(rèn)的用戶,飄易截取下開(kāi)頭的兩句:
EXEC?dbo.sp_grantdbaccess?@loginame?=?N'user103987877',?@name_in_db?=?N'user103987877'
GO
上面語(yǔ)句里的“user103987877”需要修改成sql?2000上存在的用戶名,不能使用保留名如“sa”。
3.?將數(shù)據(jù)從2005導(dǎo)到2000?
打開(kāi)?SQL2005?Management?Studio
--?打開(kāi)"對(duì)象資源管理器"(沒(méi)有的話按F8),?連接到你的實(shí)例?
--?右鍵要轉(zhuǎn)到2000的庫(kù)?
--?任務(wù)?
--?導(dǎo)出數(shù)據(jù)?
--?在"SQL?Server?導(dǎo)入和導(dǎo)出向?qū)?的"選擇數(shù)據(jù)源"步驟中,?確定選擇的是要導(dǎo)出的數(shù)據(jù)庫(kù)?
--?在"選擇目標(biāo)"步驟中,?連接到sql?2000,?并選擇步驟2新建的庫(kù)?
--?在"選擇源表和源視圖"中,?選擇所有的表?
--?最后完成?
???補(bǔ)充一點(diǎn):在從sql?2005導(dǎo)出數(shù)據(jù)到sql2000的時(shí)候可能會(huì)提示:無(wú)法在只讀列“id”中插入數(shù)據(jù)!
???
解決辦法
:
因?yàn)閕d是標(biāo)識(shí)列,所以導(dǎo)入時(shí)沒(méi)辦法插入數(shù)據(jù)庫(kù)。我們只需要在導(dǎo)入/導(dǎo)出第二步驟選擇“源表和源視圖”的時(shí)候,點(diǎn)擊后面的“編輯映射”按鈕,然后勾選“啟用標(biāo)識(shí)列插入”再導(dǎo)入即可。
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
