2025-03-25

 

眾所周知,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” 博客

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *