SQL Serwer: Co to jest collation, czyli jak ustawić rozpoznawanie dużych liter ? – Copy

SQL. Jak usunąć SQL Server ?

SQL. Co to jest collation ?

 Jak ustawić rozpoznawanie dużych liter ? 

 
SQL serwer domyślnie nie rozróżnia wielkich i małych liter w wyszukiwaniu lub filtrowaniu rekordów. Jednak podczas tworzenia bazy danych możemy ustawić właściwość zwaną collation.
 
 
Co to jest collation
 
W Object Explorer po wybraniu prawym przyciskiem myszy opcji New Database… otworzy się okno tworzenia bazy danych. Poza wieloma opcjami do wyboru mamy do wyboru zakładkę Options: 
 
 
jak ustawić właściwość collation ?
 
 
Po wybraniu tej opcji po prawej stronie jest pole  Collation:  i z pola kombi wybieramy odpowiednią dla naszego języka właściwość:
 
 
 
Jak ustawić rozpoznawanie dużych liter
 
 
Właściwość ta jest bardzo ważna, gdyż określa obsługę języka, wrażliwość na wielkość znaków (case sensitive) ale także kolejność sortowania znaków w całej bazie danych.  Od wersji SQL Server 2019 wprowadzono wsparcie dla kodowania UTF-8 w typach zwykłych (np. NCHAR)  pod warunkiem jednak, że ustawienie collation kończy się na UTF8.  Dla typów nchar i nvarchar (tych, które obsługują UNICODE)  można ustawić na przykład  taki collation: Polish_100_CS_AS_WS_SC_UTF8. (jest do wyboru z listy).Jeżeli w nazwie właściwości znajduje się akronim  SC (supplementary characters) to typy będą używały kodowania UTF – 16 i będą obsługiwały pełny zakres znaków UNICODE.
 
Jak wspomniałem wcześniej ustawienie to służy również do sortowania rekordów. Aby sprawdzić obecne ustawienia tej właściwości możemy skorzystać z funkcji fn_helpcollation:
 
SELECT name, description FROM sys.fn_helpcollations();
 
W kolumnie descrription dla właściwości , o której mowa (Polish_100_CS_AS_KS_WS_SC_UTF8) znajdziemy opis szczegółowy:
 
Polish-100, case-sensitive, accent-sensitive, kanatype-sensitive, width-sensitive, supplementary characters, UTF8
 
Znaczenie ważniejszych skrótów:
 
 
CS – rozróżnia wielkie i małe litery. Małe litery są sortowane przed ich wielki wersjami.
AS – rozróżnia znaki z akcentem i bez akcentu (np. w hiszpańskim i francuskim)
KS- typy znaków japońskich (KANA)
 
W poleceniu SELECT możemy bezpośrednio określić sortowanie kolumny jako część tej definicji. Jeżeli w ustawieniach środowiska bazy danych brak ustawienia wielkości liter (_CS) zapytanie:
 
SELECT firstname, lastname FROM Employees WHERE
lastname = N’davis’;
 
zwróci wiersz dla pracownika o nazwisku „Davis”.  Ale jeżeli w tym samym środowisku (bez ustawienia _CS)  uruchomimy takie zapytanie:
 
SELECT firstname, lastname FROM Employees
WHERE lastname COLLATE Latin1_General_CS_AS = N’davis’;
 
nie dostaniemy żadnego rekordu, bo w bazie danych nie ma osoby o nazwisko „davis” pisanego małą literą.

Więcej informacji na szkoleniu : https://e-edumade.pl/szkolenie-sql-serwer-dla-zaawansowanych/

 
 

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *