SQL Server轉(zhuǎn)換數(shù)據(jù)庫(kù)的正確排序規(guī)則的條件
以下的文章主要描述的是SQL Server轉(zhuǎn)換數(shù)據(jù)庫(kù)的正確排序規(guī)則,此文章定義了排序規(guī)則,而且也介紹如何在 Microsoft SQL Server 數(shù)據(jù)庫(kù)轉(zhuǎn)換數(shù)據(jù)庫(kù)的正確排序規(guī)則。有關(guān) SQL Server 2000 的概念和討論同樣適用于 SQL Server 2005。
什么是排序規(guī)則?
排序規(guī)則指定了表示每個(gè)字符的位模式。它還指定了用于排序和比較字符的規(guī)則。排序規(guī)則具有下面的特征:
語(yǔ)言
區(qū)分大小寫
區(qū)分重音
區(qū)分假名
要了解服務(wù)器當(dāng)前使用的排序規(guī)則,可以在 SQL 查詢分析器中運(yùn)行 sp_helpsort 系統(tǒng)過(guò)程。
SQL Server 7.0 不支持使用多個(gè)排序規(guī)則的數(shù)據(jù)庫(kù)。因此,在 SQL Server 7.0 中創(chuàng)建的所有數(shù)據(jù)庫(kù)均使用默認(rèn)的排序規(guī)則。SQL Server 2000 支持多個(gè)排序規(guī)則。SQL Server 2000 數(shù)據(jù)庫(kù)可使用除默認(rèn)排序規(guī)則以外的其他排序規(guī)則。此外,SQL Server 2000 還支持使用排序規(guī)則(除數(shù)據(jù)庫(kù)創(chuàng)建的排序規(guī)則外)的列。
在 DTS 中使用“使用排序規(guī)則”選項(xiàng)的條件
SQL Server 2000 可包含多個(gè)數(shù)據(jù)庫(kù)或列,它們可以使用除默認(rèn)排序規(guī)則以外的排序規(guī)則。因此,在數(shù)據(jù)轉(zhuǎn)換服務(wù) (DTS) 中引入了名為“使用排序規(guī)則”的新選項(xiàng)。“使用排序規(guī)則”選項(xiàng)的行為由要執(zhí)行的轉(zhuǎn)換的類型決定。如果要在 SQL Server轉(zhuǎn)換數(shù)據(jù)庫(kù)的兩個(gè)實(shí)例之間傳輸數(shù)據(jù)且啟用了“使用排序規(guī)則”選項(xiàng),則數(shù)據(jù)將從源代碼頁(yè)轉(zhuǎn)換到目標(biāo)代碼頁(yè)。
如果沒(méi)有啟用“使用排序規(guī)則”選項(xiàng)且 SQL Server 2000 的兩個(gè)實(shí)例中的代碼頁(yè)相同,則會(huì)直接傳輸數(shù)據(jù)。如果代碼頁(yè)不同,則數(shù)據(jù)將從源代碼頁(yè)轉(zhuǎn)換到目標(biāo)代碼頁(yè)。但是,在傳輸數(shù)據(jù)時(shí),轉(zhuǎn)換可能會(huì)出現(xiàn)錯(cuò)誤。
注意:如果排序規(guī)則用于數(shù)據(jù)本身并且列使用的是 COLLATE 子句,則排序規(guī)則很重要。“使用排序規(guī)則”選項(xiàng)確定當(dāng)數(shù)據(jù)從一個(gè)排序規(guī)則傳輸?shù)搅硪粋€(gè)排序規(guī)則時(shí)是否轉(zhuǎn)換代碼頁(yè)。“使用排序規(guī)則”選項(xiàng)不會(huì)影響是否設(shè)置了列定義的 COLLATE 屬性。
因此,如果源表包含使用 COLLATE 子句創(chuàng)建的帶有特定排序規(guī)則的列,則此排序規(guī)則將在傳輸數(shù)據(jù)時(shí)得以保留,而不管是否在數(shù)據(jù)轉(zhuǎn)換服務(wù)向?qū)е袉⒂昧?ldquo;使用排序規(guī)則”選項(xiàng)。
不改變數(shù)據(jù)庫(kù)排序規(guī)則的轉(zhuǎn)換方法
下列方法不改變數(shù)據(jù)庫(kù)的排序規(guī)則:
備份和還原:在某服務(wù)器上還原數(shù)據(jù)庫(kù)時(shí),如果該服務(wù)器使用的排序規(guī)則與用于備份的服務(wù)器使用的排序規(guī)則不同,則不會(huì)將還原后的數(shù)據(jù)庫(kù)轉(zhuǎn)換為使用新的排序規(guī)則。數(shù)據(jù)庫(kù)排序規(guī)則仍保持原樣。
分離和重新附加:如果分離使用某一排序規(guī)則創(chuàng)建的數(shù)據(jù)庫(kù),并且將該數(shù)據(jù)庫(kù)重新附加到使用其他排序規(guī)則的另一服務(wù)器,則該數(shù)據(jù)庫(kù)的排序規(guī)則不會(huì)改變。數(shù)據(jù)庫(kù)的排序規(guī)則仍保持原樣。
復(fù)制數(shù)據(jù)庫(kù)向?qū)В簭?fù)制數(shù)據(jù)庫(kù)向?qū)?shí)質(zhì)上使分離和重新附加的過(guò)程自動(dòng)化了。數(shù)據(jù)庫(kù)的排序規(guī)則仍保持原樣。
注意:復(fù)制數(shù)據(jù)庫(kù)向?qū)H在 SQL Server 2000 中可用。
以上的相關(guān)內(nèi)容就是對(duì)SQL Server轉(zhuǎn)換數(shù)據(jù)庫(kù)的排序規(guī)則的介紹,望你能有所收獲。
【編輯推薦】