区分大小写的不是运算符,而是列本身。
执行SQL Server安装时,将为实例选择默认排序规则。除非另有明确说明(请在下面检查collate子句),否则在创建新数据库时它将继承实例的排序规则,而在创建新列时将继承其所属数据库的排序规则。
类似的排序规则sql_latin1_general_cp1_ci_as
规定了应如何处理列的内容。CI代表不区分大小写,AS代表重音。
排序规则的完整列表可从https://msdn.microsoft.com/zh-cn/library/ms144250(v=sql.105).aspx获得。
(a)检查实例排序规则
select serverproperty('collation')
(b)检查数据库排序规则
select databasepropertyex('databasename', 'collation') sqlcollation
(c)使用其他排序规则创建数据库
create database exampledatabase
collate sql_latin1_general_cp1_cs_as
(d)使用其他排序规则创建列
create table exampletable (
examplecolumn varchar(10) collate sql_latin1_general_cp1_ci_as null
)
(e)修改列排序规则
alter table exampletable
alter column examplecolumn varchar(10) collate sql_latin1_general_cp1_ci_as null
可以更改实例和数据库归类,但不会影响以前创建的对象。
也可以随时更改列排序规则以进行字符串比较,但是在生产环境中强烈建议不要这样做,因为这非常昂贵。
select
column1 collate sql_latin1_general_cp1_ci_as as column1
from table1
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句