学习oracle技术,每天学一点,每天进步一点

sqlserver2000排序规则

上一篇 / 下一篇  2008-07-02 14:50:33 / 个人分类:学习

sqlserver2000排序规则

关键词sqlserver2000  排序规则  SQL  SQL学习  equal                                         

SQL SERVER的排序规则平时使用不是很多,也许不少初学者还比较陌生,但有 一个错误大家应是经常碰到:   SQL   SERVER数据库,在跨库多表连接查询时,若两数据库默认字符集不同,系统就会返回这样的错误:    ITPUB个人空间lh dk#@#HK9R!n ~/h
                “无法解决   equal   to   操作的排序规则冲突。”  
Y(|{Mm0   
1U#cjJG0  一.错误分析:  
}ry2i$U4@{0    这个错误是因为排序规则不一致造成的,我们做个测试,比如:  ITPUB个人空间r \#fj+P-j v
  create   table   #t1(  
j zUVy0  name   varchar(20)   collate   Albanian_CI_AI_WS,      ITPUB个人空间.iGm.@?y2[4uK
  value   int)  ITPUB个人空间xeH"~j
   ITPUB个人空间%hK F-db([+@
  create   table   #t2(  
F4WFqY3B,G0  name   varchar(20)   collate   Chinese_PRC_CI_AI_WS,          
&l9J j2_8b*d:P0  value   int   )  ITPUB个人空间A$g7SN$@-J[%qN)}z
   
*TPk J [ {qXW0  表建好后,执行连接查询:  ITPUB个人空间NF]'b lM6i
   
J E9Me+^v4GW-E:~ e0  select   *   from   #t1   A   inner   join   #t2   B   on   A.name=B.name    
p6s!^B S3awrn0   ITPUB个人空间:Vo%a?4zs
  这样,错误就出现了:  
p XT3c.d0   ITPUB个人空间Q;[wl0n3_,c3r&\
                        服务器:   消息   446,级别   16,状态   9,行   1  
?q:k%ht2L4\)F {Z0                        无法解决   equal   to   操作的排序规则冲突。  ITPUB个人空间AV6E\!~
    要排除这个错误,最简单方法是,表连接时指定它的排序规则,这样错误就  
8R"n \ F&im%I0  不再出现了。语句这样写:  
y `1g tqjp^0   ITPUB个人空间 v[K1PT$lcJ,U0p-i
  select   *    ITPUB个人空间Om7R3d\/UvT
  from   #t1   A   inner   join   #t2   B    ITPUB个人空间5^)LhL%f(`
  on   A.name=B.name   collate   Chinese_PRC_CI_AI_WS  
k%p#nbsn.Z0   
{^GE]1E q.A0   
`x z2bKh5D z)lfs0  二.排序规则简介:  ITPUB个人空间)}1p,T)ixf^;X
   ITPUB个人空间T"v5[zst
          什么叫排序规则呢?MS是这样描述的:"在   Microsoft   SQL   Server   2000   中,  ITPUB个人空间U cLps(B)GG
  字符串的物理存储由排序规则控制。排序规则指定表示每个字符的位模式以及存  ITPUB个人空间7S;bG%mumu$D4E`
  储和比较字符所使用的规则。"  
Sotw'YOOQ0    在查询分析器内执行下面语句,可以得到SQL SERVER支持的所有排序规则。  ITPUB个人空间 k0k1V8nRyKTG
   ITPUB个人空间f^E7y*Py
      select   *   from   ::fn_helpcollations()    ITPUB个人空间`&m.n2g.Qgu
   
s/~*Y3q2y6B8_\0  排序规则名称由两部份构成,前半部份是指本排序规则所支持的字符集。  
$Q R2O:[5h^d\0  如:  
6t0s t V:S0    Chinese_PRC_CS_AI_WS    ITPUB个人空间?$Rzqq:d{ SX jP
  前半部份:指UNICODE字符集,Chinese_PRC_指针对大陆简体字UNICODE的排序规则。  
oq3S2VP$| PL0  排序规则的后半部份即后缀   含义:    ITPUB个人空间9`*rsA `Y;y:u q
    _BIN   二进制排序    
e#L"z1W ^'`4['Ycs;H0    _CI(CS)   是否区分大小写,CI不区分,CS区分  
3hV(_(S&X1Dh)?0    _AI(AS)   是否区分重音,AI不区分,AS区分     ITPUB个人空间(z+fr.H |#w
    _KI(KS)   是否区分假名类型,KI不区分,KS区分   ITPUB个人空间2f0f4pN)^yW4C
          _WI(WS)   是否区分宽度   WI不区分,WS区分   ITPUB个人空间'vPmy0A*uv
   
sw aU&tQ1m4N5`e0  区分大小写:如果想让比较将大写字母和小写字母视为不等,请选择该选项。  ITPUB个人空间,Y7e/`(D8rY0e
  区分重音:如果想让比较将重音和非重音字母视为不等,请选择该选项。如果选择该选项,  ITPUB个人空间y/SxU&r K2CN
                    比较还将重音不同的字母视为不等。  ITPUB个人空间1l)aN%N+~
  区分假名:如果想让比较将片假名和平假名日语音节视为不等,请选择该选项。  ITPUB个人空间"v4~,F,d,va!C6k
  区分宽度:如果想让比较将半角字符和全角字符视为不等,请选择该选项


TAG:

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2008-12-02  
 123456
78910111213
14151617181920
21222324252627
28293031   

数据统计

  • 访问量: 26110
  • 日志数: 312
  • 图片数: 2
  • 建立时间: 2007-12-11
  • 更新时间: 2008-11-28

RSS订阅

Open Toolbar