在SQL Server 2000數(shù)據(jù)庫中更改 master排序規(guī)則
此文章主要介紹的是在 SQL Server 2000 中正確轉(zhuǎn)換數(shù)據(jù)庫的實際排序規(guī)則,以及對實現(xiàn) SQL Server 2000 中正確轉(zhuǎn)換數(shù)據(jù)庫的實際排序規(guī)則的步驟與在SQL Server 2000數(shù)據(jù)庫中更改 master 數(shù)據(jù)庫的排序規(guī)則等相關(guān)內(nèi)容的介紹。
要在 SQL Server 2000 中轉(zhuǎn)換數(shù)據(jù)庫的排序規(guī)則,請按照下列步驟操作:
1. 備份源數(shù)據(jù)庫。
2. 注意所有列是否使用 COLLATE 子句。
3. 使用適當(dāng)?shù)呐判蛞?guī)則在目標(biāo)服務(wù)器上創(chuàng)建新的數(shù)據(jù)庫。
4. 如果沒有列使用 COLLATE 子句,請使用 DTS 將數(shù)據(jù)傳輸?shù)侥繕?biāo)服務(wù)器。為此,請啟用“使用排序規(guī)則”選項以進行代碼頁轉(zhuǎn)換,并將數(shù)據(jù)轉(zhuǎn)換為目標(biāo)數(shù)據(jù)庫上的新排序規(guī)則。如果所有列均使用 COLLATE 子句,請按照下列步驟操作:
a. 為所有對象(不包括索引、觸發(fā)器、主鍵、外鍵、默認設(shè)置和約束)生成腳本。此外,確保啟用了“僅為與 7.0 版兼容的功能編寫腳本”選項,以便從腳本刪除 COLLATE 子句。
注意:使用“僅為與 7.0 版兼容的功能編寫腳本”選項時,可以更改排序規(guī)則。但是,生成腳本時將不考慮任何新的 SQL Server 2000 選項(包括用戶定義的函數(shù)、擴展屬性、INSTEAD OF 觸發(fā)器和視圖上的索引)。
b. 在目標(biāo)數(shù)據(jù)庫上運行步驟 a 中創(chuàng)建的腳本,以便使用目標(biāo)數(shù)據(jù)庫的排序規(guī)則創(chuàng)建對象。
c. 使用 DTS 僅傳輸源數(shù)據(jù)庫中的數(shù)據(jù)。
d. 成功傳輸數(shù)據(jù)后,將會為源數(shù)據(jù)庫中的所有約束、外鍵、主鍵和索引生成腳本。
e. 在目標(biāo)數(shù)據(jù)庫上運行步驟 d 中創(chuàng)建的腳本。
更改 master 數(shù)據(jù)庫的排序規(guī)則
如果要更改 master 數(shù)據(jù)庫的排序規(guī)則,則必須重建 master 數(shù)據(jù)庫。在重建 master 數(shù)據(jù)庫時,實質(zhì)上是創(chuàng)建了新的 master 數(shù)據(jù)庫。因此,重建 master 數(shù)據(jù)庫之前,應(yīng)考慮下列事項:
確保創(chuàng)建了當(dāng)前 master 數(shù)據(jù)庫的有效備份。在重建 master 數(shù)據(jù)庫時,還會重建 msdb 數(shù)據(jù)庫和 model 數(shù)據(jù)庫。因此,在重建 master 數(shù)據(jù)庫之前必須備份 msdb 數(shù)據(jù)庫和 model 數(shù)據(jù)庫。msdb 數(shù)據(jù)庫是用于存儲 SQL Server 作業(yè)、警報、運算符和 DTS 包的系統(tǒng)數(shù)據(jù)庫。model 數(shù)據(jù)庫是創(chuàng)建新數(shù)據(jù)庫時所使用的模板數(shù)據(jù)庫。
因為重建 master 數(shù)據(jù)庫會創(chuàng)建一個新的 master 數(shù)據(jù)庫,所以必須在重建 master 數(shù)據(jù)庫之后重新輸入現(xiàn)有登錄信息。因此,還必須在重建 master 數(shù)據(jù)庫之前導(dǎo)出登錄信息,然后在重建 master 數(shù)據(jù)庫后,導(dǎo)入登錄信息。
因為在重建 master 數(shù)據(jù)庫時會重建 msdb 數(shù)據(jù)庫,所以在重建 master 數(shù)據(jù)庫之前,必須為所有作業(yè)、警報和運算符生成腳本。此外,還必須確保移動了所有 DTS 包。
因為在重建 master 數(shù)據(jù)庫時會重建 model 數(shù)據(jù)庫,所以在重建 master 數(shù)據(jù)庫之前,必須記下或?qū)С鲆郧皩?model 數(shù)據(jù)庫所做的全部更改或為其生成腳本。重建 model 數(shù)據(jù)庫之后,請重新應(yīng)用已記錄的全部更改。
在 SQL Server 2000 中更改 master 數(shù)據(jù)庫的排序規(guī)則
更改 master 數(shù)據(jù)庫的排序規(guī)則之前,請按照下列步驟操作:
1. 重建 master 數(shù)據(jù)庫之后,不會自動恢復(fù)在重建此數(shù)據(jù)庫之前創(chuàng)建的所有數(shù)據(jù)庫。因此,所有數(shù)據(jù)庫必須從備份進行還原,或者如果文件仍在磁盤上,則可以使用 sp_attach_db 系統(tǒng)存儲過程重新附加數(shù)據(jù)庫。
請確保在重建 master 數(shù)據(jù)庫之前將所有必要的信息重新附加到現(xiàn)有數(shù)據(jù)庫。有關(guān) sp_attach_db 系統(tǒng)存儲過程的更多信息,請訪問下面的 MSDN 網(wǎng)站:http://msdn2.microsoft.com/en-us/library/aa259611(SQL.80).aspx (http://msdn2.microsoft.com/en-us/library/aa259611(SQL.80).aspx)
2. 在重建 master 數(shù)據(jù)庫時,僅更改 master 數(shù)據(jù)庫、model 數(shù)據(jù)庫和 msdb 數(shù)據(jù)庫的排序規(guī)則。不會更改用戶數(shù)據(jù)庫的排序規(guī)則。要更改現(xiàn)有用戶數(shù)據(jù)庫的排序規(guī)則或者使用適當(dāng)?shù)呐判蛞?guī)則創(chuàng)建新的數(shù)據(jù)庫,請使用 ALTER DATABASE 命令,然后使用 DTS 或 bcp 實用工具將數(shù)據(jù)傳輸?shù)叫碌臄?shù)據(jù)庫。
注意:如果在 SQL Server 2000 中使用 ALTER DATABASE 命令來更改數(shù)據(jù)庫的排序規(guī)則,則表中列的排序規(guī)則將不會自動更改。要更改列的排序規(guī)則,請使用 ALTER TABLE 命令和 ALTER COLUMN 命令。
如果使用 DTS,則可以在傳輸數(shù)據(jù)或使用“使用排序規(guī)則”選項之前,使用適當(dāng)?shù)呐判蛞?guī)則創(chuàng)建表和列。如果使用的 DTS 和表已經(jīng)包含適當(dāng)?shù)呐判蛞?guī)則,請確保在運行軟件包之前禁用了“首先刪除現(xiàn)有對象”選項。
在 SQL Server 7.0 中更改更改 master 數(shù)據(jù)庫的排序規(guī)則之前,請按照下列步驟操作:
1. SQL Server 7.0 不支持數(shù)據(jù)庫使用除默認排序規(guī)則以外的排序規(guī)則。因此,在重建 master 數(shù)據(jù)庫之前,請從用戶數(shù)據(jù)庫中導(dǎo)出所有數(shù)據(jù)。
2. 為數(shù)據(jù)庫中的所有對象生成腳本。
3. 使用適當(dāng)?shù)呐判蛞?guī)則重新創(chuàng)建 master 數(shù)據(jù)庫。
4. 創(chuàng)建新的數(shù)據(jù)庫。使用新的默認排序規(guī)則自動創(chuàng)建新的數(shù)據(jù)庫。
5. 運行以前保存的腳本以重新創(chuàng)建對象,然后導(dǎo)入以前導(dǎo)出的數(shù)據(jù)。
【編輯推薦】
- SQL Server 2000 安裝時出現(xiàn)的癥狀歸納
- 向外擴展SQL Server實現(xiàn)更高擴展性
- 正確識別SQL Server 版本號的操作方案
- SQL Server子查詢的作用是什么?
- SQL Server 數(shù)據(jù)庫中管理常用的SQL與T-SQL