問:我注意到,SQL Server 7.0默認安裝的代碼頁設置是SQL_Latin1_General_CP1_CI_AS,但是SQL Server 2000的默認代碼頁是Latin1_General_CI_AS。在我需要將SQL Server 7.0數據庫恢復到SQL Server 2000之中時,默認代碼頁發生的變化會造成很大的差異。我應該如何適應這種改變?
答:SQL Server正在逐漸取消對原有的自定義代碼頁的支持,而轉變為同Microsoft® Windows 代碼頁相匹配,Windows代碼頁是您在設置Windows區域ID時所選擇設定的。同代碼頁相關的更多信息,請參閱SQL Server 2000在線圖書中的“字符數據的存儲方式”一文。
當您將SQL Server 7.0升級到SQL Server 2000之後,在默認情況下,您仍然可以保留現有的排序方式和代碼頁設置。但是,當您進行了一次干淨的SQL Server 2000安裝時,您將使用新的排序方式和代碼頁。如果您將某個數據庫附加到一個SQL Server 2000實例中,SQL Server將保留該數據庫在創建時所使用的排序規則。換句話說,如果您將一個SQL Server 7.0數據庫附加到SQL Server 2000之中,你就可以保留SQL Server 7.0代碼頁。
由於SQL Server現在使用了新的默認代碼頁,我們建議:如果您想通過干淨安裝和數據庫的附加(attch)操作進行升級,您可以在安裝時選擇同您的SQL Server 7.0排序規則相匹配的排序規則。您可以通過執行一次升級來確定該排序規則,例如,對pubs數據庫進行一次升級,使用SERVERPROPERTY (Collation)函數運行一個查詢,然後看看所得到的是何種排序規則。
Microsoft之所以對默認代碼頁進行修改,主要是為了減少SQL Server和Windows代碼頁的不兼容而引起的種種問題。
— Microsoft SQL Server開發團隊