LIKE运算符是否对MSSQL Server区分大小写?

马塞尔

有关LIKE运算符文档中,没有任何有关其区分大小写的信息。是吗?如何启用/禁用它?

varchar(n)如果这很重要,我正在Microsoft SQL Server 2005安装上查询列。

哈哈

区分大小写的不是运算符,而是列本身。

执行SQL Server安装时,将为实例选择默认排序规则。除非另有明确说明(请在下面检查collat​​e子句),否则在创建新数据库时它将继承实例的排序规则,而在创建新列时将继承其所属数据库的排序规则。

类似的排序规则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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章