Existuje několik způsobů, jak získat jazyk aktuálně používaný na serveru SQL Server.
Jazyk aktuální relace bude často výchozím jazykem pro přihlášení, ale nemusí tomu tak být vždy. Uživatel může během relace změnit aktuální jazyk.
Některé vestavěné funkce SQL Serveru také přijímají argument, který vám umožňuje určit jazyk pro tento konkrétní dotaz.
Tento článek ukazuje, jak vrátit aktuálně používaný jazyk.
@@LANGUAGE
@@LANGUAGE
konfigurační funkce je vytvořena speciálně pro vrácení názvu aktuálně používaného jazyka.
Zde je příklad použití.
SELECT @@LANGUAGE;
Výsledek:
us_english
Toto je výchozí jazyk pro mé přihlášení.
Zde je příklad změny jazyka během relace a následného spuštění @@LANGUAGE
znovu.
SET LANGUAGE British;
SELECT @@LANGUAGE;
Výsledek:
British
UŽIVATELSKÉ MOŽNOSTI DBCC
DBCC USEROPTIONS
také vám umožňuje získat aktuálně používaný jazyk spolu s několika dalšími možnostmi konfigurace.
DBCC USEROPTIONS;
Výsledek:
+-------------------------+----------------+ | 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 | +-------------------------+----------------+
Spustil jsem tento dotaz ihned po předchozím příkladu, a tak stále vrací jako jazyk britský.
Všimněte si také, že jazyk implicitně ovlivňuje dateformat
a datefirst
hodnoty. Výchozí hodnoty pro tyto hodnoty při použití us_english
je mdy
a 7
respektive.
Pokud změním jazyk zpět na us_English
a spusťte DBCC USEROPTIONS
znovu uvidíte, že dateformat
a datefirst
nastavení se vrátí do amerického formátu.
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 | +-------------------------+----------------+
V případě potřeby však můžete vždy nastavit formát data odděleně od jazyka.
sys.dm_exec_requests
Soubor sys.dm_exec_requests
zobrazení umožňuje načíst jazyk pro konkrétní uživatelský proces. V tomto případě můžeme použít @@SPID
specifikovat aktuální uživatelský proces.
SELECT r.language
FROM master.sys.dm_exec_requests r
WHERE r.session_id = @@SPID;
Výsledek:
us_english