sql >> Databáze >  >> RDS >> Sqlserver

Získejte jazyk aktuálně používaný v SQL Server

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

  1. Jak nastavím časové pásmo MySQL?

  2. Zvýšení výkonu databáze o 400 %

  3. Jak ROWNUM funguje ve stránkovacím dotazu?

  4. Oracle :vyberte maximální hodnotu z různých sloupců stejného řádku