Serwisanci dostępni teraz · czynne całą dobę, także w weekendy i świętaWarszawa i okolice · dojazd bezpłatny
Darmowa diagnoza laptopa
Darmowa diagnoza laptopa
Dojazd do klienta bezpłatnie
Dojazd do klienta bezpłatnie
Laptopy zastępcze bezpłatnie
Laptopy zastępcze bezpłatnie
Odbiór i zwrot sprzętu bezpłatnie
Odbiór i zwrot sprzętu bezpłatnie

Windows Server – ustawienia regionalne

Termin Definicja
Windows Server – ustawienia regionalne

Ustawienia regionalne Windows Server wpływają na domyślną kolację nowo instalowanej instancji SQL Server.

Jak ustawienia regionalne Windows Server wpływają na instalację SQL Server

Ustawienia regionalne systemu Windows Server są jednym z czynników wykorzystywanych podczas instalowania instancji Microsoft SQL Server. Jeżeli administrator nie wskaże własnej kolacji w programie instalacyjnym, SQL Server może dobrać kolację domyślną na podstawie ustawień regionalnych i systemowego ustawienia języka dla programów nieobsługujących kodu Unicode. W praktyce oznacza to, że dwa serwery z taką samą wersją SQL Server, ale przygotowane z inną konfiguracją regionalną Windows, mogą otrzymać różne kolacje instancji.

Kolacja SQL Server określa między innymi sposób sortowania i porównywania tekstu, rozróżnianie wielkości liter, rozróżnianie znaków diakrytycznych oraz — w przypadku kolacji używających stron kodowych — zestaw znaków dostępnych dla danych typu char, varchar i text. Nie jest to wyłącznie ustawienie wyglądu daty lub symbolu waluty w interfejsie systemu. Ma bezpośredni wpływ na zachowanie zapytań, indeksów, unikalnych ograniczeń i operacji porównujących wartości tekstowe.

System locale, format daty i kolacja to różne ustawienia

Panel ustawień regionalnych Windows Server zawiera kilka odrębnych obszarów. Format regionalny steruje prezentacją dat, godzin, liczb i walut, natomiast ustawienie systemowe dla programów nieobsługujących kodu Unicode wpływa na wybór strony kodowej używanej przez starsze aplikacje. Osobno można ustawić język interfejsu systemu, język preferowany użytkownika oraz lokalizację urządzenia. Zmiana formatu wyświetlania daty z jednego kraju na inny nie oznacza automatycznej zmiany kolacji już zainstalowanej instancji SQL Server.

Przed instalacją warto sprawdzić rzeczywistą konfigurację systemową, a nie tylko ustawienia aktywnego konta administratora. W środowisku Windows można wykorzystać polecenie PowerShell Get-WinSystemLocale do odczytu systemowej lokalizacji dla aplikacji nieobsługujących kodu Unicode. Polecenie Get-Culture pokazuje kulturę bieżącej sesji użytkownika, ale nie zastępuje kontroli ustawienia systemowego. Po zmianie systemowej lokalizacji Windows może być wymagane ponowne uruchomienie serwera. Dopiero po restarcie i ponownym sprawdzeniu konfiguracji należy rozpoczynać instalację SQL Server.

Najbezpieczniejszym rozwiązaniem w środowisku produkcyjnym jest jawne wskazanie wymaganej kolacji w instalatorze SQL Server zamiast polegania na wartości wykrytej automatycznie. Administrator powinien wcześniej ustalić, czy aplikacja wymaga kolacji zgodnej z językiem polskim, czy z istniejącym środowiskiem, a także czy potrzebne są właściwości takie jak case-insensitive, case-sensitive, accent-sensitive lub accent-insensitive. Sama nazwa języka systemu nie opisuje wszystkich tych cech.

Skutki wybranej kolacji dla baz, zapytań i tempdb

Kolacja instancji jest ustawiana podczas instalacji SQL Server i staje się domyślną kolacją dla baz tworzonych bez jawnie określonej wartości. Dotyczy także baz systemowych tworzonych lub używanych przez instancję, w tym master, model i tempdb. Baza użytkownika może mieć własną kolację, odmienną od kolacji instancji, jeżeli zostanie ona wskazana przy tworzeniu albo zmieniona później. Kolacja bazy jest z kolei domyślnie dziedziczona przez nowe kolumny tekstowe, dla których nie podano klauzuli COLLATE.

Różnice kolacji mogą ujawnić się przy łączeniu tabel z różnych baz, porównywaniu kolumn, sortowaniu wyników oraz wykonywaniu operacji na tabelach tymczasowych. SQL Server może wtedy zgłosić konflikt kolacji, gdy obie strony wyrażenia tekstowego mają niezgodne reguły. W innych przypadkach zastosuje reguły wynikające z priorytetu kolacji, co może zmienić rezultat porównania albo kolejność sortowania. Szczególne znaczenie ma tempdb, ponieważ tabele tymczasowe i zmienne tabelaryczne mogą dziedziczyć kolację związaną z instancją, a następnie uczestniczyć w zapytaniach przeciwko tabelom z baz o innej kolacji.

Zmiana ustawień regionalnych Windows po instalacji SQL Server nie przelicza automatycznie kolacji instancji, baz ani istniejących kolumn. Informację o kolacji instancji można sprawdzić w SQL Server, odczytując właściwość SERVERPROPERTY('Collation'). Kolację bieżącej bazy można odczytać z widoku sys.databases, a kolacje poszczególnych kolumn z widoku sys.columns po połączeniu ich z sys.types. Jeżeli kolacja jest nieprawidłowa, naprawa wymaga zaplanowanej operacji administracyjnej: utworzenia obiektów z odpowiednią kolacją, konwersji danych albo — w uzasadnionych przypadkach — ponownej konfiguracji instancji. Nie należy zakładać, że wystarczy zmienić region w Panelu sterowania.

Kontrola konfiguracji przed wdrożeniem serwera

Przed instalacją SQL Server należy zapisać oczekiwane ustawienia regionalne Windows Server oraz wymaganą kolację wynikającą z dokumentacji aplikacji. Po instalacji trzeba porównać wartość kolacji instancji z założeniem projektowym i sprawdzić kolacje baz systemowych oraz baz aplikacyjnych. Warto również przetestować sortowanie polskich znaków, porównania tekstów różniących się wielkością liter oraz zachowanie znaków diakrytycznych. Test powinien obejmować rzeczywiste typy kolumn używane przez aplikację, ponieważ zachowanie danych Unicode i danych opartych na stronie kodowej może być różne.

W przypadku istniejącego serwera analiza powinna rozpocząć się od odczytu ustawień Windows, kolacji instancji, kolacji baz i kolacji kolumn uczestniczących w problematycznych zapytaniach. Należy oddzielić problem prezentacji daty lub liczb w aplikacji od problemu sortowania i porównywania danych w SQL Server. Jeżeli błąd pojawia się tylko podczas pracy z tabelą tymczasową, trzeba sprawdzić również relację między kolacją tempdb a kolacją bazy użytkownika. Doraźne dodawanie COLLATE do pojedynczego zapytania może usunąć objaw, ale nie zastępuje ustalenia spójnej konfiguracji.

Diagnostyka serwera powinna kończyć się dokumentacją wartości zastanych, wartości wymaganych oraz zakresu ewentualnej korekty. Przed zmianą kolacji trzeba uwzględnić indeksy, klucze unikalne, procedury składowane, widoki, zadania oraz integracje, które wykonują operacje tekstowe. Każda konwersja danych powinna być poprzedzona kopią zapasową i testem na środowisku odtworzeniowym. Dzięki temu ustawienia regionalne Windows Server są traktowane jako element procesu instalacyjnego SQL Server, a nie jako przypadkowa opcja interfejsu.

+48 22 100 48 29Zadzwoń teraz · serwisant w 1 godzinę