To nie operator rozróżnia wielkość liter, ale sama kolumna.
Podczas instalacji programu SQL Server do instancji wybierane jest sortowanie domyślne. O ile wyraźnie nie zaznaczono inaczej (sprawdź klauzulę collate poniżej), gdy tworzona jest nowa baza danych, dziedziczy sortowanie z instancji, a po utworzeniu nowej kolumny dziedziczy sortowanie z bazy danych, do której należy.
Zestawienie takie jak sql_latin1_general_cp1_ci_as
dyktuje, jak należy traktować zawartość kolumny. CI oznacza niewrażliwy na wielkość liter, a AS oznacza wrażliwy na akcent.
Pełna lista zestawień jest dostępna pod adresem https://msdn.microsoft.com/en-us/library/ms144250(v=sql.105).aspx
(a) Aby sprawdzić sortowanie instancji
select serverproperty('collation')
(b) Aby sprawdzić sortowanie bazy danych
select databasepropertyex('databasename', 'collation') sqlcollation
(c) Aby utworzyć bazę danych przy użyciu innego sortowania
create database exampledatabase
collate sql_latin1_general_cp1_cs_as
(d) Aby utworzyć kolumnę przy użyciu innego sortowania
create table exampletable (
examplecolumn varchar(10) collate sql_latin1_general_cp1_ci_as null
)
(e) Aby zmodyfikować sortowanie kolumn
alter table exampletable
alter column examplecolumn varchar(10) collate sql_latin1_general_cp1_ci_as null
Możliwa jest zmiana sortowania instancji i bazy danych, ale nie ma to wpływu na wcześniej utworzone obiekty.
Możliwa jest również zmiana sortowania kolumn w locie w celu porównania ciągów, ale jest to wysoce niewskazane w środowisku produkcyjnym, ponieważ jest to niezwykle kosztowne.
select
column1 collate sql_latin1_general_cp1_ci_as as column1
from table1