一直以來咱們都認爲數據庫語句是不區分大小寫,其實這是錯誤的認識,之因此不區分是由於數據庫語言不區分大小寫。這裏咱們以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