注冊|登錄

聯系電話:024-31891684  13390130939
沈陽軟件公司--沈陽軟件定制

沈陽軟件開發_沈陽軟件公司_沈陽軟件定制/軟件/最新技術

Latest technology最新技術

SQL半角全角查詢

瀏覽量:3416

這是一個在我實際一個項目中遇到的問題。03BHL01001(上海)和03BHL01001(上海)比較的結果是一樣的。導致引起的重復的主鍵問題。

03BHL01001(上海)和03BHL01001(上海)差別,就在于前者的括號是全角的括號字符,后者是半角的
括號字符。全角的括號字符和半角的括號字符的ascii碼顯然是不一樣的。全角的(   ASCII碼是0xA3A8   ,而半角的(   是0x28。那么為什么SQL   Server會認為是一樣的呢?
問題其實就出在數據庫的排序規則上,讓我們在仔細研讀一下SQL   Server的文檔。SQL   Server的排序規則由這樣幾部分組成,代碼頁、區分大小寫、區分重音、區分寬度。最后一個在SQL   Server的聯機幫助中沒有進一步提及,其實本篇遇到的問題就是由于這個原因造成的。區分寬度:指定   SQL   Server   區分相同字符的單字節表示法(半角)和雙字節表示法(全角)。如果沒有選擇,則   SQL   Server   將認為相同字符的單字節表示法和雙字節表示法等效。
缺省,安裝SQL   Server中文版的時候,SQL   Server幫你選擇的排序規則是Chinese_PRC_CI_AS(Chinese-PRC,   case-insensitive,   accent-sensitive,   kanatype-insensitive,   width-insensitive),是中文,不區分大小寫、區分重音、不區分假名、不區分寬度。因此,自然就認同03BHL01001(上海)=03BHL01001(上海)。
所以,正確的選擇應該是,后綴為WS的中文排序規則。本例中我們應該選擇Chinese_PRC_CI_AS_WS。
我們來看一下,指定排序規則是Chinese_PRC_CI_AS_WS后,怎么樣了?
 
select   1   where   '03BHL01001(上海) '= '03BHL01001(上海) '  
collate   Chinese_PRC_CI_AS_WS
 
-----------  
 
(所影響的行數為   0   行)
 
看來這個問題解決了。
重要提示:
如何察看使用那個排序規則呢?可以使用下面的SQL語句。
SELECT   *
FROM   ::fn_helpcollations()
可以查詢所有排序規則的信息。
-----------------------------------------
查出所有中文排序規則的信息
SELECT   *   FROM
(
SELECT   *
FROM   ::fn_helpcollations())   A
WHERE   name   like   'Chinese% '
 

上一篇:sqlIP轉換

下一篇:SQL按拼音查詢

沈陽團購網|營口網站制作|沈陽軟件公司|軟件定制|網站建設|加盟易勢|提交問題

主站蜘蛛池模板: 日韩伦理电影在线免费观看| 看全色黄大色黄大片视| 国产福利你懂的| 亚洲欧洲综合在线| 黑白配hd视频| 少妇愉情理伦片丰满丰满| 久久国产精久久精产国| 欧美午夜一区二区福利视频| 亚洲视频在线一区二区| 精品理论片一区二区三区| 国产乱来乱子视频| 91精品视频免费| 国产精品国产三级国产av中文| a级毛片毛片免费观看久潮喷| 最近中文字幕mv2018免费看| 免费观看四虎精品国产永久| 被猛男cao尿了| 国产成人亚洲综合色影视| 香蕉免费看一区二区三区| 在线视频亚洲一区| www夜片内射视频日韩精品成人| 成年人免费视频软件| 久久久久久久久久久久久久久 | 无码免费一区二区三区免费播放| 久久青草精品38国产| 欧美videos极品| 亚洲国产精品尤物yw在线观看| 欧美黑人激情性久久| 人人澡人人澡人人看添av| 精品三级久久久久电影网1| 国产MD视频一区二区三区| 青苹果乐园在线高清| 国产在线高清视频无码| 黄色黄色一级片| 国产拍拍拍无码视频免费| 日本dhxxxxxdh14日本| 国产精品怡红院在线观看| 2022天天躁夜夜躁西| 成人永久福利在线观看不卡| 久久久久久久久久福利| 日本精品一区二区三区视频|