SQL SERVER中生僻字問題存儲與查詢問題


以下僅記錄碰到的幾個問題

1.首先字段設置為varchar的時候存儲后無法進行正常的顯示 顯示為?

  此狀態下匹配查詢或者Like模糊查詢都沒問題

2.將字段設置為nvarchar,在進行插入或者跟新時入:insert into teset set membername='秦䶮 ' 此時䶮字仍然只顯示?, insert into teset set membername=N'秦䶮 '時可正常插入顯示

  此狀態下用匹配查詢=可以正常查詢到,當使用like模糊查詢時 䶮沒有被識別到  like N'%秦䶮%'跟  like N'%秦%'查到的結果一樣。

 

 

既要顯示正確又要正確查詢解決辦法

select * from db_owner.systemMember where memberName like N'%秦䶮%' collate  Chinese_PRC_BIN 使用強制定義字符集排序
后因為使用的時linq to sql查詢,沒法指定字符集排序。
后將單表內但單字段的字符集排序從Chinese_PRC_CI_AS改為了Chinese_PRC_BIN進行查詢正確。(此處因為沒有用到臨時表或跨表的字段匹配查詢,所以僅更改了單字段的字符集排序。如果涉及到跨表跨字段匹配或者臨時表因統一調整為同一字符集排序)。
 
 
擴展字符集相關知識:

    解析:Chinese_PRC_BIN ;

      Chinese_PRC為簡體中文UNICODE字符集

      _BIN 二進制排序 
      _CI(CS) 是否區分大小寫,CI不區分,CS區分
      _AI(AS) 是否區分重音,AI不區分,AS區分   
      _KI(KS) 是否區分假名類型,KI不區分,KS區分 
        _WI(WS) 是否區分寬度 WI不區分,WS區分


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM