>  這篇論壇文章著重介紹了SQLServer數(shù)據(jù)庫簡體繁體數(shù)據(jù)混用的問題,詳細(xì)內(nèi)容請參考下文:  我現(xiàn)在要說的是一個在簡體繁體數(shù)據(jù)混用的時候很容易發(fā)生的問題,但是這個問題也很容易被大家忽略。">
sql server數(shù)據(jù)庫簡體繁體數(shù)據(jù)混用的問題--

sql server數(shù)據(jù)庫簡體繁體數(shù)據(jù)混用的問題--

ID:9682152

大小:52.00 KB

頁數(shù):3頁

時間:2018-05-05

sql server數(shù)據(jù)庫簡體繁體數(shù)據(jù)混用的問題--_第1頁
sql server數(shù)據(jù)庫簡體繁體數(shù)據(jù)混用的問題--_第2頁
sql server數(shù)據(jù)庫簡體繁體數(shù)據(jù)混用的問題--_第3頁
資源描述:

《sql server數(shù)據(jù)庫簡體繁體數(shù)據(jù)混用的問題--》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫。

1、SQLServer數(shù)據(jù)庫簡體繁體數(shù)據(jù)混用的問題>>  這篇論壇文章著重介紹了SQLServer數(shù)據(jù)庫簡體繁體數(shù)據(jù)混用的問題,詳細(xì)內(nèi)容請參考下文:  我現(xiàn)在要說的是一個在簡體繁體數(shù)據(jù)混用的時候很容易發(fā)生的問題,但是這個問題也很容易被大家忽略。具體來說,這個問題會在所有采用不同排序規(guī)則的數(shù)據(jù)實例間關(guān)聯(lián)數(shù)據(jù)的時候發(fā)生。也許我這么說大家還是弄不清楚到底是怎么回事兒,我先來講一下我今天碰到的問題。  公司里面使用的數(shù)據(jù)庫會有簡體中文和繁體中文兩種版本。我現(xiàn)在這個專案使用的SQLServer是繁體中文版的,但是需要使用到另一個使用簡體中文版SQLServer

2、專案的數(shù)據(jù),我按照通常的做法把簡體中文版SQLServer中的一個數(shù)據(jù)表導(dǎo)入到現(xiàn)在使用的繁體中文版SQLServer中,結(jié)構(gòu)和數(shù)據(jù)都導(dǎo)入成功了。我一開始并沒有意識到這樣做會有什么問題。接下來我開始調(diào)試SQL語句,其實是一個很簡單的兩表關(guān)聯(lián)數(shù)據(jù)選擇大致如下:  selecttable1.*,table2.*  fromtable1  innerjointable2ontable2.FK=table1.PK  照理說這么簡單的語句沒道理會出什么問題,不過在查詢分析器里面始終提示如下的錯誤  服務(wù)器:消息446,級別16,狀態(tài)9,行1  無法解析equ

3、alto動作的定序衝突?! 『髞硭阉髁艘幌?,然后又看了一下T-SQL的幫助,才知道原來是因為我將簡體中文SQLServer中的數(shù)據(jù)表導(dǎo)入到繁體中文的數(shù)據(jù)表中的是后,連同原數(shù)據(jù)的排序方式一并導(dǎo)入,導(dǎo)致了簡體數(shù)據(jù)表的排序方式依然是簡體,所以無法進行比較,從而出錯。解決的辦法是指名排序方式,告訴查詢分析器應(yīng)該怎樣排序即可。這里會需要用到一個關(guān)鍵字COLLATEColiate在SQLServer聯(lián)機叢書中是這樣解釋的:  COLLATE  一個子句,可應(yīng)用于數(shù)據(jù)庫定義或列定義以定義排序規(guī)則,或應(yīng)用于字符串表達式以應(yīng)用排序規(guī)則投影?! ≌Z法:  COLLA

4、TE<collation_name>  <collation_name>::=  {Table1  INNERJOINTable2ONTable2.FK=Table1.PKCOLLATEChinese_Taiicrosoft®SQLServer™2000支持多種排序規(guī)則。排序規(guī)則對控制正確使用語言(如馬其頓語或波蘭語)或字母表(如西歐語言使用的拉丁字母表Latin1_General)字符的規(guī)則進行編碼?! ∶總€SQLServer排序規(guī)則指定三個屬性:  用于Unicode數(shù)據(jù)類型(nchar、nvarc

5、har和ntext)的排序次序。排序次序定義字符的排序序列,以及在比較操作中對字符取值的方法?! ∮糜诜荱nicode字符數(shù)據(jù)類型(char、varchar和text)的排序次序。  用于存儲非Unicode字符數(shù)據(jù)的代碼頁?! ≌f明不能指定與Unicode數(shù)據(jù)類型(nchar、nvarchar和ntext)對應(yīng)的代碼頁。用于Unicode字符的雙字節(jié)位模式由Unicode標(biāo)準(zhǔn)定義且不能更改?! 】稍谌魏渭墑e上指定SQLServer2000排序規(guī)則。安裝SQLServer2000實例時,可指定該實例的默認(rèn)排序規(guī)則。每次創(chuàng)建數(shù)據(jù)庫時,可指定用于該數(shù)

6、據(jù)庫的默認(rèn)排序規(guī)則。如果未指定排序規(guī)則,數(shù)據(jù)庫的默認(rèn)排序規(guī)則即是實例的默認(rèn)排序規(guī)則。無論何時定義字符列、變量或參數(shù),都可指定這些對象的排序規(guī)則。如果未指定排序規(guī)則,將使用數(shù)據(jù)庫的默認(rèn)排序規(guī)則創(chuàng)建這些對象。  如果SQLServer實例的所有用戶都使用同一種語言,則應(yīng)選擇支持該語言的排序規(guī)則。例如,若所有用戶都講法語,則選擇法語排序規(guī)則?! ∪绻鸖QLServer實例的用戶使用多種語言,則應(yīng)選擇能對多語種需求提供最佳支持的排序規(guī)則。例如,如果用戶一般都講西歐語言,則選擇Latin1_General排序規(guī)則。當(dāng)支持使用多種語言的用戶時,對所有字符數(shù)據(jù)

7、都使用Unicode12下一頁>>>>這篇文章來自..,。數(shù)據(jù)類型nchar、nvarchar和ntext最為重要。Unicode旨在消除非Unicodechar、varchar和text數(shù)據(jù)類型的代碼頁轉(zhuǎn)換困難。因為排序規(guī)則定義用于比較操作的排序次序和Unicode字符的排序,所以當(dāng)用Unicode數(shù)據(jù)類型實現(xiàn)所有的列時,排序規(guī)則仍會產(chǎn)生不同。即使當(dāng)使用Unicode數(shù)據(jù)類型存儲字符數(shù)據(jù)時,也應(yīng)選擇支持大多數(shù)用戶的排序規(guī)則,以防使用非Unicode數(shù)據(jù)類型實現(xiàn)列或變量?! QLServer排序規(guī)則定義數(shù)據(jù)庫引擎存儲和操作字符及Unicode數(shù)

8、據(jù)的方式。然而,當(dāng)數(shù)據(jù)移入應(yīng)用程序后,在應(yīng)用程序中進行的字符排序和比較將由計算機上選定的SDN®頁中的DevelopingInt

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。