sql server下默认区分大小写

时间:2022-06-01 18:43:47
sql server 2000下默认不区分大小写,不区分全半角

平时会遇到这种状况:当查询字段等于'a'的记录时,查询结果中包括等于 A a A 的记录;
原因是在Sql Server数据库中建立的数据表字符类型字段是不区分大小写、全半角的,无论是查询还是排序它们都被认为是一样的:
aAaA
bBbB
cCcC
dDdD

如果你想建立一个支持大小写区分的字段,应该这样写:
field NVARCHAR(50) COLLATE Chinese_PRC_CS_AS,    -- 区分大小写

如果你想建立一个支持全半角区分的字段,应该这样写:
field NVARCHAR(50) COLLATE Chinese_PRC_CI_AS_WS,-- 区分全角半角

如果你想让这个字段既支持大小写区分又支持全半角区分,应该这样写:
field NVARCHAR(50) COLLATE Chinese_PRC_CS_AS_WS,-- 区分大小写和全角半角

在中文版sqlserver2000下默认字段类型是这样的:
field NVARCHAR(50) COLLATE Chinese_PRC_CI_AS,-- SQL Server 默认区分重音(重音是什么东西?)

使用可视化窗口设置也很简单:
使用企业管理器,选择表使用“设计表”功能-排序规则
打开窗口:勾选区分大小写,勾选区分宽度(全半角区分)