一直以来咱们都认为数据库语句是不区分大小写,其实这是错误的认识,之因此不区分是由于数据库语言不区分大小写。这里咱们以mssql2005中自带的AdventureWorksDW数据库为例。sql
执行如下语句数据库
SELECT databasepropertyex('AdventureWorksDW','collation')
go
select top 1 * from Dimaccountspa
运行结果:blog
这里的Dimaccount表名应该是DimAccount(表名大小写问题),而后执行如下语句:io
alter database AdventureWorksDW COLLATE SQL_Latin1_General_CP1_CS_AS
go
select top 1 * from Dimaccount
运行结果:select
运行select top 1 * from DimAccount一切正常sql语句
因此说sql语句不区分大小写这种说法是不对,是否区分主要看数据库COLLATE 属性是否区分大小。
_CI_AI 不区分大小写、不区分重音、不区分假名类型、不区分宽度
_CI_AI_WS 不区分大小写、不区分重音、不区分假名类型、区分宽度
_CI_AI_KS 不区分大小写、不区分重音、区分假名类型、不区分宽度
_CI_AI_KS_WS 不区分大小写、不区分重音、区分假名类型、区分宽度
_CI_AS 不区分大小写、区分重音、不区分假名类型、不区分宽度
_CI_AS_WS 不区分大小写、区分重音、 不区分假名类型、区分宽度
_CI_AS_KS 不区分大小写、区分重音、区分假名类型、不区分宽度
_CI_AS_KS_WS 不区分大小写、区分重音、区分假名类型、区分宽度
_CS_AI 区分大小写、不区分重音、 不区分假名类型、不区分宽度
_CS_AI_WS 区分大小写、不区分重音、不区分假名类型、区分宽度
_CS_AI_KS 区分大小写、不区分重音、区分假名类型、不区分宽度
_CS_AI_KS_WS 区分大小写、不区分重音、区分假名类型、区分宽度
_CS_AS 区分大小写、区分重音、不区分假名类型、不区分宽度
_CS_AS_WS 区分大小写、区分重音、不区分假名类型、区分宽度
_CS_AS_KS 区分大小写、区分重音、区分假名类型、不区分宽度
_CS_AS_KS_WS 区分大小写、区分重音、区分假名类型、区分宽度 im