把MSSQL2005转换成MSSQL2000
? ? ?眾所周知,mssql是不會(huì)向后兼容。
? ? ?要把SQL2005轉(zhuǎn)換到sql2000。最大的問(wèn)題是:要把用SQL2005特性實(shí)現(xiàn)的功能重新用SQL2000實(shí)現(xiàn)一遍。
? ? ?1.表的轉(zhuǎn)換。
? ? ?不要用SQL2005自帶的生成腳本工具轉(zhuǎn)換,因?yàn)橛袀€(gè)BUG。當(dāng)你未選擇“為所選數(shù)據(jù)庫(kù)中的所有對(duì)象編寫(xiě)腳本”時(shí),他的版本選擇會(huì)出錯(cuò),即使你在“為服務(wù)器版本編寫(xiě)腳本”中選擇了SQL2000.他也會(huì)為SQL2005編寫(xiě)腳本。
? ? ?所以建議用Microsoft sql server database publishing wizard 工具,他使用更加方便。
? ? ?但是他有個(gè)缺點(diǎn)是,錯(cuò)誤提示不夠詳細(xì),所以可以兩者結(jié)合使用。
? ? ?根據(jù)他的錯(cuò)誤提示,把SQL2005里有些字段類(lèi)型修改成符合SQL2000標(biāo)準(zhǔn)的。然后生成腳本在SQL2000里執(zhí)行一遍。就可以了。(可以最好選擇只轉(zhuǎn)換表結(jié)構(gòu),數(shù)據(jù)下次導(dǎo)入)
? ? 2.視圖轉(zhuǎn)換
? ? ?表轉(zhuǎn)換成功后,這步很容易轉(zhuǎn)換。
? ? 3.函數(shù)轉(zhuǎn)換
? ? ?在工具里,選擇所有函數(shù),生成腳本,在sql2000里執(zhí)行后,把執(zhí)行不成功的函數(shù)找出來(lái),修改成符合sql2000標(biāo)準(zhǔn)的語(yǔ)句。
? ? 4.存儲(chǔ)過(guò)程轉(zhuǎn)換
? ? ?同樣,照第三步操作
? ? 5.其他
? ? 程序集、用C#實(shí)現(xiàn)的存儲(chǔ)過(guò)程等這些sql2000沒(méi)有的功能,只好用sql語(yǔ)句重新實(shí)現(xiàn)一遍。
? ? 6.數(shù)據(jù)轉(zhuǎn)換
? ? 在某些情況下,用MSSQL2005自帶數(shù)據(jù)導(dǎo)入,導(dǎo)入數(shù)據(jù)到sql2000會(huì)報(bào)錯(cuò)。而MSSQL?database publishing wizard 工具也不能生成數(shù)據(jù)插入腳本。
? ? 那么可以先用工具生成數(shù)據(jù)插入到MSSQL2005的腳本。然后在MSSQL2000里執(zhí)行。一般情況下可以執(zhí)行的。如果個(gè)別表報(bào)錯(cuò),先把這些表的插入語(yǔ)句刪除。再執(zhí)行。
? ? 至此,轉(zhuǎn)換已經(jīng)成功完成了。
? ? 如果你MSSQL2005運(yùn)用的sql2005特性越多,就會(huì)更加明白2005的優(yōu)越性能。
? ? CTE,TRY_CATCH 語(yǔ)句,ouput子語(yǔ)句,error_message.....等等都是SQL2005后才具有的。。
轉(zhuǎn)載于:https://blog.51cto.com/wuxinjie/630459
總結(jié)
以上是生活随笔為你收集整理的把MSSQL2005转换成MSSQL2000的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: python的inspect模块
- 下一篇: Exchange 默认数据库删除问题