| Termin | Definicja |
|---|---|
| Język a komunikaty błędów | Zależność języka od komunikatów błędów określa, w jakiej wersji językowej SQL Server zwraca opisy napotkanych problemów. Jak SQL Server wybiera język komunikatu błęduSQL Server może zwracać komunikaty diagnostyczne w różnych wersjach językowych. Wybór języka zależy przede wszystkim od ustawień sesji, z której wykonano instrukcję. Informację o bieżącym języku można odczytać za pomocą funkcji Język sesji można zmienić instrukcją Język komunikatu a numer i treść błęduZmiana języka nie zmienia samego zdarzenia, które wystąpiło w silniku. Numer błędu, poziom ważności, stan oraz procedura lub instrukcja zgłaszająca problem pozostają odrębnymi informacjami diagnostycznymi. Przykładowo naruszenie ograniczenia klucza podstawowego nadal będzie identyfikowane tym samym mechanizmem, niezależnie od tego, czy opis zostanie zwrócony po polsku, czy po angielsku. W praktyce numer błędu jest stabilniejszym identyfikatorem niż przetłumaczony tekst. Teksty komunikatów systemowych są przechowywane w katalogu komunikatów SQL Server i są powiązane z identyfikatorem języka. Widoki katalogowe, takie jak Wpływ ustawień sesji na analizę błędówPodczas diagnostyki trzeba odróżnić język ustawiony w SQL Server od języka narzędzia klienckiego, systemu operacyjnego i aplikacji. Management Studio, aplikacja korzystająca z dostawcy sterownika oraz skrypt uruchomiony z wiersza poleceń mogą otwierać sesje z innymi ustawieniami początkowymi. Sam interfejs programu może być po polsku, podczas gdy serwer zwróci komunikat po angielsku, ponieważ język sesji został ustalony niezależnie od języka menu aplikacji. Znaczenie ma także sposób nawiązywania połączenia. Ustawienia domyślnego języka mogą być przypisane do loginu, a ustawienia sesji mogą zostać później zmienione przez sterownik, aplikację lub polecenie Własne komunikaty dodawane procedurą Praktyczne porównywanie komunikatów w SQL ServerNajbezpieczniejsza analiza błędu polega na zapisaniu pełnego komunikatu razem z numerem, poziomem ważności, stanem, nazwą bazy, nazwą obiektu i instrukcją, która go wywołała. Samo tłumaczenie może różnić się składnią, długością lub terminologią, ale numer błędu pozwala porównać zdarzenia między środowiskami. W logach aplikacji warto zachowywać zarówno oryginalny tekst, jak i dane strukturalne zwracane przez sterownik SQL Server. Jeżeli ten sam skrypt daje różne opisy w dwóch narzędziach, należy porównać język sesji, domyślny język loginu, wersję i edycję instancji oraz dostępność odpowiednich zasobów językowych. Pomocne jest także celowe wykonanie testu z jednoznacznie ustawionym językiem, na przykład po użyciu W środowisku, w którym błędy są przekazywane do systemu monitoringu, przydatne jest normalizowanie komunikatów według numeru i stanu zamiast według ich dosłownego brzmienia. Dzięki temu ten sam problem nie zostanie potraktowany jako dwa różne zdarzenia tylko dlatego, że jedna sesja działa po polsku, a druga po angielsku. Tekst komunikatu nadal pozostaje potrzebny operatorowi, lecz jako opis pomocniczy, a nie jedyny klucz klasyfikacji. |