眾所周知,mssql是不會向後兼容。
要把SQL2005轉換到sql2000。最大的問題是:要把用SQL2005特性實現的功能重新用SQL2000實現一遍。
1.表的轉換。
不要用SQL2005自帶的生成腳本工具轉換,因為有個BUG。當你未選擇“為所選數據庫中的所有對象編寫腳本”時,他的版本選擇會出錯,即使你在“為服務器版本編寫腳本”中選擇了SQL2000.他也會為SQL2005編寫腳本。
所以建議用Microsoft sql server database publishing wizard 工具,他使用更加方便。
但是他有個缺點是,錯誤提示不夠詳細,所以可以兩者結合使用。
根據他的錯誤提示,把SQL2005裡有些字段類型修改成符合SQL2000標准的。然後生成腳本在SQL2000裡執行一遍。就可以了。(可以最好選擇只轉換表結構,數據下次導入)
2.視圖轉換
表轉換成功後,這步很容易轉換。
3.函數轉換
在工具裡,選擇所有函數,生成腳本,在sql2000裡執行後,把執行不成功的函數找出來,修改成符合sql2000標准的語句。
4.存儲過程轉換
同樣,照第三步操作
5.其他
程序集、用C#實現的存儲過程等這些sql2000沒有的功能,只好用sql語句重新實現一遍。
6.數據轉換
在某些情況下,用MSSQL2005自帶數據導入,導入數據到sql2000會報錯。而MSSQL database publishing wizard 工具也不能生成數據插入腳本。
那麼可以先用工具生成數據插入到MSSQL2005的腳本。然後在MSSQL2000裡執行。一般情況下可以執行的。如果個別表報錯,先把這些表的插入語句刪除。再執行。
至此,轉換已經成功完成了。
如果你MSSQL2005運用的sql2005特性越多,就會更加明白2005的優越性能。
CTE,TRY_CATCH 語句,ouput子語句,error_message.....等等都是SQL2005後才具有的。。
本文出自 “wuxinjie” 博客