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