Istnieje kilka sposobów uzyskania języka używanego obecnie w SQL Server.
Język bieżącej sesji często będzie domyślnym językiem logowania, ale nie zawsze tak jest. Użytkownik może zmienić bieżący język podczas sesji.
Ponadto niektóre wbudowane funkcje SQL Server akceptują argument, który pozwala określić język dla tego konkretnego zapytania.
Z tego artykułu dowiesz się, jak zwrócić aktualnie używany język.
@@JĘZYK
@@LANGUAGE
funkcja konfiguracji jest stworzona specjalnie do zwracania nazwy aktualnie używanego języka.
Oto przykład użycia.
SELECT @@LANGUAGE;
Wynik:
us_english
To jest domyślny język mojego logowania.
Oto przykład zmiany języka podczas mojej sesji, a następnie uruchomienia @@LANGUAGE
ponownie.
SET LANGUAGE British;
SELECT @@LANGUAGE;
Wynik:
British
OPCJE UŻYTKOWNIKA DBCC
DBCC USEROPTIONS
pozwala również uzyskać aktualnie używany język, a także kilka innych opcji konfiguracyjnych.
DBCC USEROPTIONS;
Wynik:
+-------------------------+----------------+ | Set Option | Value | |-------------------------+----------------| | textsize | -1 | | language | British | | dateformat | dmy | | datefirst | 1 | | lock_timeout | 5000 | | quoted_identifier | SET | | arithabort | SET | | ansi_null_dflt_on | SET | | ansi_warnings | SET | | ansi_padding | SET | | ansi_nulls | SET | | concat_null_yields_null | SET | | isolation level | read committed | +-------------------------+----------------+
Uruchomiłem to zapytanie natychmiast po poprzednim przykładzie, więc nadal zwraca brytyjski jako język.
Zauważ również, że język niejawnie wpływa na dateformat
i datefirst
wartości. Domyślne wartości tych wartości przy użyciu us_english
to mdy
i 7
odpowiednio.
Jeśli zmienię język z powrotem na us_English
i uruchom DBCC USEROPTIONS
ponownie zobaczysz, że dateformat
i datefirst
ustawienia powracają do formatu amerykańskiego.
SET LANGUAGE us_English; ....... DBCC USEROPTIONS; Time: 0.740s Changed language setting to us_english. +-------------------------+----------------+ | Set Option | Value | |-------------------------+----------------| | textsize | -1 | | language | us_english | | dateformat | mdy | | datefirst | 7 | | lock_timeout | 5000 | | quoted_identifier | SET | | arithabort | SET | | ansi_null_dflt_on | SET | | ansi_warnings | SET | | ansi_padding | SET | | ansi_nulls | SET | | concat_null_yields_null | SET | | isolation level | read committed | +-------------------------+----------------+
Jednak zawsze możesz ustawić format daty osobno dla języka, jeśli zajdzie taka potrzeba.
sys.dm_exec_requests
sys.dm_exec_requests
Widok umożliwia pobranie języka dla określonego procesu użytkownika. W tym przypadku możemy użyć @@SPID
aby określić bieżący proces użytkownika.
SELECT r.language
FROM master.sys.dm_exec_requests r
WHERE r.session_id = @@SPID;
Wynik:
us_english