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