欧美一级精品免费播放-亚洲精品久久久久久人妖-中文字幕一区二区精品在线-国产精品亚洲一区二区在 色天天综合色天天久久婷婷_日韩綜合网_精品国产香蕉伊思人在线_99视频国产在线观看播放

注冊|登錄

聯(lián)系電話:024-31891684  13390130939
沈陽軟件公司--沈陽軟件定制

沈陽軟件開發(fā)_沈陽軟件公司_沈陽軟件定制/軟件/最新技術(shù)

Latest technology最新技術(shù)

SQL半角全角查詢

瀏覽量:3445

這是一個在我實(shí)際一個項(xiàng)目中遇到的問題。03BHL01001(上海)和03BHL01001(上海)比較的結(jié)果是一樣的。導(dǎo)致引起的重復(fù)的主鍵問題。

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

上一篇:sqlIP轉(zhuǎn)換

下一篇:SQL按拼音查詢

沈陽團(tuán)購網(wǎng)|營口網(wǎng)站制作|沈陽軟件公司|軟件定制|網(wǎng)站建設(shè)|加盟易勢|提交問題