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

3 způsoby, jak získat jazyk aktuální relace na serveru SQL (T-SQL)

Když je vytvořeno nové přihlášení na serveru SQL Server, je mu přiřazen výchozí jazyk. Tento jazyk se používá pro systémové zprávy a formáty data/času. Tento jazyk bude použit jako výchozí jazyk vždy, když se toto přihlášení připojí k serveru SQL (ale lze jej v rámci relace také změnit na jiný jazyk).

Pokud někdy budete chtít zjistit jazyk, který je přiřazen k aktuální relaci, můžete spustit jednu z možností na této stránce.

Možnost 1:Funkce konfigurace @@LANGUAGE

První možností, jak získat jazyk aktuální relace, je použít @@LANGUAGE skalární funkce. Jednoduše jej použijte jako součást SELECT prohlášení.

Takhle:

SELECT @@LANGUAGE;

Výsledek:

us_english

Možnost 2:Příkaz DBCC USEROPTIONS

Můžete také spustit DBCC USEROPTIONS vrátit aktuální jazyk a také další možnosti pro aktuální připojení.

Takhle:

DBCC USEROPTIONS;

Výsledek:

+-------------------------+----------------+
| 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 |
+-------------------------+----------------+

Možnost 3:Zobrazení  sys.dm_exec_requests

Tato možnost je trochu odlišná od předchozích dvou možností v tom, že toto systémové zobrazení vrací informace na úrovni jednotlivých požadavků (vrací informace o každém požadavku, který se provádí na serveru SQL Server). Můžete jej zúžit na aktuální požadavek (což bude SELECT příkaz, kterým se dotazujete na pohled).

Toto zobrazení vrací relativně velký počet sloupců, takže pokud vás zajímá pouze jazyk, můžete vybrat pouze tento sloupec.

Zde je návod, jak vrátit jazyk používaný v aktuálním uživatelském procesu:

SELECT r.language
FROM master.sys.dm_exec_requests r
WHERE r.session_id = @@SPID;

Výsledek:

+------------+
| language   |
|------------|
| us_english |
+------------+

Jazyk pro aktuální relaci můžete kdykoli změnit. Chcete-li zjistit, jak na to, viz Jak nastavit aktuální jazyk na serveru SQL Server (T-SQL).

Všimněte si také, že některé vestavěné funkce T-SQL přijímají argumenty pro určení jazyka/kultury, která má být použita na konkrétní úrovni dotazu. Například PARSE() funkce umožňuje zadat kulturu, která se má použít pro dotaz (nebo dokonce část dotazu), která určuje, jak je daný řetězec naformátován (příklad viz Jak převést řetězec na datum/čas na serveru SQL Server pomocí PARSE( )).

Výchozí jazyk

Všimněte si, že uživatel může mít také výchozí jazyk, který se liší od aktuálního jazyka. Pokud používají SET LANGUAGE změnit na jiný jazyk, jejich výchozí jazyk zůstane jejich výchozím jazykem, i když se jazyk aktuální relace změnil.

Chcete-li najít výchozí jazyk pro uživatele/přihlášení/role, přečtěte si článek Jak najít výchozí jazyk uživatele na serveru SQL Server (T-SQL).


  1. Jak mohu provést SELECT DISTINCT na všech polích kromě BLOB?

  2. Python psycopg2 se nevkládá do tabulky postgresql

  3. Jak vytvořit tabulku pomocí výběrového dotazu v SQL Server?

  4. SQL Server IF vs IIF():Jaký je rozdíl?