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

相關文章
相關標籤/搜索