MSSQL 数据库语句原来是区分大小写的啊

一直以来咱们都认为数据库语句是不区分大小写,其实这是错误的认识,之因此不区分是由于数据库语言不区分大小写。这里咱们以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

相关文章
相关标签/搜索