| Termin | Definicja |
|---|---|
| Sp_configure 'default language' | sp_configure 'default language' ustawia domyślny język komunikatów dla nowo tworzonych logowań. Sp_configure „default language” – czym jest ta opcjaSp_configure „default language” to ustawienie administracyjne w Microsoft SQL Server, które określa język przypisywany nowo tworzonym loginom, jeżeli podczas tworzenia konta nie zostanie podana inna wartość. Znaczenie tej opcji dotyczy przede wszystkim języka komunikatów zwracanych przez silnik bazy danych, a nie języka danych przechowywanych w tabelach. Nie zmienia ona automatycznie nazw kolumn, zawartości rekordów, sortowania tekstu ani ustawień językowych systemu operacyjnego. W praktyce ustawienie działa jak wartość domyślna wykorzystywana przy tworzeniu nowych loginów. Jeżeli administrator ustawi określony identyfikator języka, nowe konto otrzyma tę preferencję, chyba że w instrukcji tworzenia loginu zostanie jawnie wskazany inny język. Z tego powodu opcja może porządkować konfigurację środowiska, w którym komunikaty powinny być spójne dla wielu użytkowników. Samo ustawienie nie jest jednak mechanizmem tłumaczenia aplikacji i nie zastępuje lokalizacji interfejsu programu. Warto odróżnić login od użytkownika bazy danych. Login jest obiektem rozpoznawanym na poziomie instancji, natomiast użytkownik przypisany do konkretnej bazy danych korzysta z uprawnień nadanych w tej bazie. „Default language” odnosi się do preferencji loginu, dlatego jego wpływ można zauważyć podczas nawiązywania sesji oraz wykonywania poleceń przez dane konto. Jeżeli konto ma już własne ustawienie języka, późniejsza zmiana wartości domyślnej nie musi zmienić tej istniejącej konfiguracji. Sp_configure „default language” w kontekście komunikatów i datJęzyk przypisany do sesji może wpływać na sposób prezentowania komunikatów diagnostycznych, nazw dni tygodnia, nazw miesięcy oraz interpretację niektórych konstrukcji zależnych od ustawień językowych. Znaczenie ma również ustawienie formatu daty, ponieważ język może wiązać się z określonym stylem interpretowania niejednoznacznych zapisów. Nie należy jednak zakładać, że każdy zapis daty będzie bezpieczny tylko dlatego, że wybrano właściwy język. W poleceniach i aplikacjach lepiej stosować formaty jednoznaczne oraz parametry zamiast tekstowych wartości zależnych od ustawień sesji. „Default language” nie jest tym samym co sortowanie znaków. Za porównywanie i porządkowanie tekstu odpowiadają ustawienia kolacji, które mogą być określane na różnych poziomach. Język komunikatów i kolacja rozwiązują inne problemy. Możliwe jest więc środowisko, w którym komunikaty są prezentowane w jednym języku, a reguły porównywania tekstu wynikają z innej kolacji. Pomieszanie tych pojęć może prowadzić do błędnych diagnoz, szczególnie gdy problem dotyczy kolejności znaków, wielkości liter lub znaków diakrytycznych. Przy porównywaniu konfiguracji dwóch instancji trzeba sprawdzać zarówno wartość globalną ustawioną przez sp_configure, jak i ustawienia konkretnych loginów oraz sesji. To ważne, ponieważ użytkownik może otrzymywać komunikaty w innym języku niż konto utworzone później, a aplikacja może dodatkowo zmieniać ustawienia po zalogowaniu. Różnice widoczne tylko dla jednego konta często wskazują na konfigurację loginu, natomiast różnice dotyczące nowych kont mogą wynikać z wartości domyślnej. Warto także pamiętać o różnicy między językiem komunikatu a treścią błędu obsługiwaną przez aplikację. Program może przechwytywać numer błędu, tłumaczyć komunikat po swojej stronie albo prezentować własny opis. Zmiana „default language” nie gwarantuje wtedy widocznej zmiany tekstu w interfejsie, ponieważ aplikacja może korzystać z własnych zasobów językowych. Sp_configure „default language” a typowe problemy konfiguracyjneJednym z częstszych problemów jest przekonanie, że zmiana ustawienia natychmiast przestawi język wszystkich istniejących kont. Wartość ustawiona przez sp_configure pełni przede wszystkim funkcję domyślną dla nowych loginów. Konta utworzone wcześniej mogą zachować wcześniejsze preferencje. Dlatego po modyfikacji należy sprawdzić, czy problem dotyczy nowo utworzonego loginu, konkretnego istniejącego loginu, czy może ustawień aplikacji. Inny problem wynika z używania niejednoznacznych dat w skryptach. Zapis taki jak „03/04/2026” może być rozumiany różnie w zależności od ustawień sesji. Gdy skrypt działa na jednym koncie, a na innym zwraca odmienne wyniki, przyczyną może być język lub format daty, ale również jawne polecenia wykonywane po zalogowaniu. Bezpieczniejszym rozwiązaniem jest używanie parametrów zapytań i formatów, których interpretacja nie zależy od ustawień językowych. Zdarza się też, że administrator zmienia wartość konfiguracyjną, lecz nie widzi oczekiwanego efektu w już otwartej sesji. Część ustawień jest oceniana podczas tworzenia loginu lub sesji, a istniejące połączenie może nadal korzystać z wcześniejszych parametrów. W ramach testu powinno się zamknąć połączenie, nawiązać je ponownie i dopiero wtedy porównać komunikaty oraz zachowanie poleceń. Test warto wykonać na koncie o ograniczonych uprawnieniach, aby nie łączyć diagnostyki z niepotrzebnymi zmianami produkcyjnej konfiguracji. Nieprawidłowe założenie może dotyczyć także wpływu na dane już zapisane w tabelach. Ustawienie języka nie tłumaczy tekstu przechowywanego w rekordach i nie konwertuje automatycznie wartości tekstowych. Jeżeli w bazie znajdują się nazwy miesięcy albo opisy w konkretnym języku, ich zmiana wymaga operacji na danych lub zastosowania warstwy tłumaczeń. „Default language” wpływa na sposób działania sesji, nie na zawartość tabel. Sp_configure „default language” – praktyczne wskazówki wdrożeniowePrzed zmianą ustawienia należy ustalić oczekiwany zakres działania. Jeżeli celem jest ujednolicenie komunikatów dla nowych kont, warto udokumentować bieżącą wartość, planowaną wartość i powód modyfikacji. Należy również przygotować test obejmujący utworzenie przykładowego loginu, nawiązanie nowej sesji i wykonanie poleceń, które generują komunikat zależny od języka. Wynik testu powinien być porównany z zachowaniem istniejącego konta. Dobrym zwyczajem jest jawne określanie ustawień tam, gdzie zachowanie aplikacji musi być powtarzalne niezależnie od konta. Dotyczy to zwłaszcza skryptów migracyjnych, zadań cyklicznych i integracji korzystających z dat, nazw miesięcy lub komunikatów analizowanych przez kod. Ustawienie globalnej wartości domyślnej może pomóc w utrzymaniu porządku, ale nie powinno być jedynym zabezpieczeniem przed różnicami między środowiskami. Przy analizie problemu warto zebrać kilka informacji: nazwę konta, moment utworzenia loginu, sposób nawiązania połączenia, ustawienia wykonywane przez aplikację po zalogowaniu oraz dokładny tekst komunikatu. Pomocne jest także porównanie nowej sesji ze starą, ponieważ pozwala rozdzielić efekt ustawienia domyślnego od parametrów zachowanych w istniejącym połączeniu. Takie podejście ogranicza ryzyko zmiany niewłaściwego elementu konfiguracji. W środowisku testowym można sprawdzić rezultat na neutralnym koncie i usunąć je po zakończeniu weryfikacji zgodnie z przyjętymi procedurami. W środowisku produkcyjnym lepiej wykonywać zmianę w uzgodnionym oknie administracyjnym, z zachowaniem kopii konfiguracji i planu wycofania. Przed zastosowaniem polecenia należy upewnić się, że używana wersja SQL Server obsługuje daną składnię oraz że konto wykonujące zmianę ma właściwe uprawnienia. Jeżeli problem z językiem komunikatów pojawia się razem z nieoczekiwanym działaniem aplikacji, przydatne może być sprawdzenie ustawień po stronie programu, sterownika i biblioteki połączeniowej. Każda z tych warstw może ustawiać własne parametry sesji. Zmiana „default language” może być prawidłowa, lecz niewidoczna dla użytkownika, jeżeli aplikacja po zalogowaniu nadpisuje język albo tłumaczy komunikaty we własnym zakresie. Kiedy zgłosić Sp_configure „default language” do serwisuDo serwisu warto zgłosić problem, gdy komunikaty zmieniają język bez wyraźnej przyczyny, daty są różnie interpretowane przez różne konta, po zmianie konfiguracji występują błędy logowania albo aplikacja działa poprawnie tylko na jednym stanowisku. Przed przekazaniem zgłoszenia dobrze przygotować nazwę używanego programu, opis różnicy między kontami, przykładowy komunikat oraz informację, czy problem występuje po ponownym nawiązaniu sesji. Takie dane ułatwiają rozdzielenie problemu ustawień językowych od problemu kolacji, formatu daty, sterownika lub samego skryptu. W sprawach związanych z komputerem używanym do pracy można skorzystać z pomocy Warszawskiego Pogotowia Komputerowego 24/7, gdzie diagnoza laptopa jest darmowa. Przed rozpoczęciem naprawy warto jasno wskazać, czy oczekiwane jest wyłącznie sprawdzenie konfiguracji programu, analiza połączenia z bazą, czy również kontrola systemu i aplikacji. Pozwala to zachować właściwy zakres prac i uniknąć mylenia ustawienia „default language” z problemami sprzętowymi. Jeżeli zgłoszenie dotyczy komputera stacjonarnego, należy przekazać możliwie dokładny opis objawów, moment ich wystąpienia oraz informacje o ostatnich zmianach w konfiguracji. Nie powinno się samodzielnie usuwać loginów ani zmieniać wielu ustawień jednocześnie, ponieważ utrudnia to późniejsze ustalenie przyczyny. Najbezpieczniejsza diagnostyka polega na odtworzeniu problemu, zapisaniu wyników i modyfikowaniu tylko jednego elementu naraz. Najważniejszy wniosek jest taki, że sp_configure „default language” ustala wartość domyślną dla nowych loginów i może wpływać na komunikaty oraz zależne od sesji elementy interpretacji dat. Nie jest to ustawienie odpowiedzialne za tłumaczenie danych, zmianę kolacji ani automatyczne przestawienie wszystkich istniejących kont. Prawidłowa diagnoza wymaga sprawdzenia kilku poziomów konfiguracji oraz potwierdzenia wyniku w nowej sesji. |