有一DB,名为ABC。其中有个表,叫Ta_ABC
在collate为Japanese_CI_AS的情况下,执行select * from ta_abc ----(请注意表的大小写)
可以将此表数据查处
将此DB的collate改为Chinese_PRC_CI_AS , 执行select * from ta_abc
错误提示:无效ta_abc。问题:sql执行语句 是否 区分大小写 是不是与排序规则有关?
在collate为Japanese_CI_AS的情况下,执行select * from ta_abc ----(请注意表的大小写)
可以将此表数据查处
将此DB的collate改为Chinese_PRC_CI_AS , 执行select * from ta_abc
错误提示:无效ta_abc。问题:sql执行语句 是否 区分大小写 是不是与排序规则有关?
为 SQL 排序规则指定排序规则名称的单个字符串。语法
< SQL_collation_name > :: = SQL_SortRules[_Pref]_CPCodepage_<ComparisonStyle> <ComparisonStyle> ::=
_CaseSensitivity_AccentSensitivity | _BIN参数
SortRules标识字母表或语言的字符串,当指定按字典排序时应用该字母表或语言的排序规则。例如 Latin1_General 或波兰语。Pref指定大写字母优先。Codepage指定标识排序规则所使用的代码页的 1 至 4 个数字的号码。CP1 指定代码页 1252,对于所有其它代码页指定完整代码页号码。例如,CP1251 指定代码页 1251,CP850 指定代码页 850。CaseSensitivityCI 指定不区分大小写,CS 指定区分大小写。AccentSensitivityAI 指定不区分重音,AS 指定区分重音。BIN指定使用二进制排序次序。
CI 不区分
而按照【CI 指定不区分大小写,CS 指定区分大小写。】这个来讲,这两个排序都有CI。
这是??在以前的工作 中,一直以为sql无论在什么时候都是区分大小写的 。这个问题还第一次遇到,想确认下哈。2L:能详细说说吗?
Chinese_PRC_CS_AI_WS
前半部份:指UNICODE字符集,Chinese_PRC_指针对大陆简体字UNICODE的排序规则。
排序规则的后半部份即后缀 含义:
_BIN 二进制排序
_CI(CS) 是否区分大小写,CI不区分,CS区分默认情况下一般不区分大小写
在安装的时候可以选择
也可以在安装之后再修改等
在collate为Japanese_CI_AS的情况下,执行select * from ta_abc ----(请注意表的大小写)
可以将此表数据查处
将此DB的collate改为Chinese_PRC_CI_AS,(这个时候你的这个会话连接的还是ABC数据库吗?) 执行select * from ta_abc
错误提示:无效ta_abc。
====
标识符的排序规则取决于定义标识符的级别。为实例级对象(如登录名和数据库名)的标识符指派的是实例的默认排序规则。为数据库对象(如表、视图和列名)的标识符指派的是数据库的默认排序规则。连接上下文与一个数据库关联后,可以创建变量、GOTO 标签、临时存储过程和临时表;该上下文切换到其他数据库时,可以引用它们。因此,变量、GOTO 标签和临时表的标识符使用实例的默认排序规则。
http://blog.csdn.net/xys_777/archive/2010/07/13/5731928.aspx
9L:没看太懂,标识符的排序规则与DB属性中的排序规则没有区别码?
10L:我将中文的改为日文排序的就ok了。但两个都有CI。
以后先看CI,CS。
如果还像今天的,就换换collate吧。
没办法,电脑神奇啊