Co to jest SQL Server Collation?
SQL Server Collation odnosi się do zestawu reguł regulujących sposób sortowania i porównywania danych znaków w bazie danych. SQL Server zapewnia szeroki zakres połączeń do obsługi danych znaków. Te połączenia mogą obsługiwać dane z sprzecznymi językami i regionami, umożliwiając kompatybilność bazy danych z aplikacjami na całym świecie.
Poziomy łączenia serwera SQL
Na serwerze SQL istnieją trzy główne poziomy, na których można zdefiniować połączenia:
Zauważ, że nazwa kolacji może być albo kolacją systemu Windows lub nazwą kolacji dostarczanej przez SQL.
Możesz określić typ kolacji podczas tworzenia bazy danych. Jeśli nie jest określony podczas tworzenia bazy danych, SQL Server będzie domyślnie w stosunku do zestawu używanego przez instancję SQL Server.
Podobnie, jeśli nie zdefiniujesz połączenia podczas tworzenia kolumny, SQL Server będzie domyślnie do zestawienia używanego w tej bazie danych.
Poziom instancji SQL Server
Możesz ustawić preferowane zestawienie instancji SQL Server podczas instalacji. Jeśli masz już zainstalowany serwer SQL, możesz użyć kreatora instalacji, aby na nowo zdefiniować typ kolacji.
Aby wyświetlić bieżącą kolację instancji SQL Server, otwórz SQL Server Management Studio.
Kliknij prawym przyciskiem myszy instancję SQL Server i wybierz opcję Właściwości:
W oknie właściwości wybierz kartę generała w lewym menu. Pokazuje to ogólne informacje o instancji SQL Server, w tym domyślny typ kolacji:
W naszym przykładzie domyślne połączenie jest ustawione na sql_latin1_general_cp1_c1_as. Jest to kolacja serwera SQL, a nie w systemie Windows, jak wskazuje prefiks SQL_.
Druga część zawiera nazwę zestawienia, w tym przypadku Latin1_general_CP_AS. Wartość CI wskazuje, że zestawienie jest nieczułe, a jako oznacza to, że jest wrażliwy na akcent.
Aby uzyskać bardziej szczegółowy opis domyślnego zestawienia SQL Server, użyj procedury SP_Helpsort, jak pokazano:
Exec sp_helpsort;Procedura powinna zwrócić informacje, jak pokazano:
Domyślne połączenie serweraZbieranie poziomu bazy danych
Możemy zdefiniować zestawienie na poziomie bazy danych. Jak wspomniano, o ile nie określono wyraźnie, baza danych odziedziczy połączenie instancji SQL Server.
Aby wyświetlić zestawienie bazy danych w SQL Server Management Studio (SSMS), kliknij prawym przyciskiem myszy docelową bazę danych i otwórz okno właściwości:
W oknie właściwości wybierz kartę generała i przejdź do sekcji konserwacji. Powinieneś zobaczyć wymieniony zestawienie bazy danych:
W naszym przypadku baza danych dziedziczy to samo, co instancja SQL Server.
Ustaw połączenie bazy danych
Aby ustawić żądaną kolację podczas tworzenia bazy danych, możesz użyć zapytania, jak pokazano poniżej:
W powyższym zapytaniu tworzymy bazę danych z kolacją sql_latin1_general_cp1_cs_as. Jest podobny do sql_latin1_general_ci_ai, z wyjątkiem tego, że jest to przypadek i akcent, jak wskazano CS i jak w nazwie łączenia:
Ustaw zestawienie w istniejącej bazie danych
SQL Server umożliwia zmianę łączenia po utworzeniu za pomocą polecenia Alter Batabase.
Na przykład następujące zapytanie zmienia zestawienie bazy danych z sql_latin1_general_cp1_cs_as na SQL_SLOVAK_CP1250_CS_AS:
Użyj próbki_database;Przed zmianą zestawienia bazy danych upewnij się, że wszystkie połączenia z bazą danych są zamknięte. W przeciwnym razie zapytanie zawiedzie.
SQL Server pokazuje obsługiwane kolacje
Aby wyświetlić obsługiwane kolacje dla wersji SQL Server, użyj zapytania, jak pokazano poniżej:
Jeśli korzystasz z SQL Server 2019, podaliśmy listę obsługiwanych kolacji. Pobierz plik z poniższego zasobu:
Zestawienie poziomu kolumny
W większości przypadków będziesz chciał, aby kolumna znaków odziedziczyła podobną kolację jak baza danych. Jednak możesz wyraźnie określić kolumnę dla kolumny podczas tworzenia kolumny.
Należy pamiętać, że możesz zdefiniować połączenie kolumny tylko wtedy, gdy kolumna jest typu Char, taka jak:
Aby ustawić kolumnę za pomocą T-SQL, użyj przykładowego zapytania, jak pokazano:
Utwórz informacje o tabeli (Aby wyświetlić zestawienie kolumny, możesz użyć procedury SP_HELP, jak pokazano poniżej:
Info exec sp_help;Polecenie powinno zwrócić informacje o kolumnie, w tym kolację jako:
Wniosek
W tym artykule zbadaliśmy koncepcję połączenia SQL Server, czym one są i jak możemy przeglądać lub zmienić połączenie na różnych poziomach, takich jak poziom instancji SQL Server, poziom bazy danych i poziom kolumny. Mamy nadzieję, że ten artykuł jest pomocny. Sprawdź inne artykuły w Linux, aby uzyskać więcej wskazówek i samouczków.