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