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

Jak nastavit aktuální jazyk v SQL Server (T-SQL)

V SQL Server můžete nastavit jazyk, který se má použít pro aktuální relaci. Aktuální nastavení jazyka určuje jazyk používaný ve všech systémových zprávách a také formáty data a času, které se mají použít.

Tento článek ukazuje, jak pomocí T-SQL nastavit aktuální jazykové prostředí na serveru SQL.

Syntaxe

Syntaxe pro nastavení aktuálního jazyka vypadá takto:

SET LANGUAGE { [ N ] 'language' | @language_var }

Kde [N]'language' | @language_var je název jazyka uložený v sys.syslanguages pohled na kompatibilitu systému. Tento argument může být převeden na Unicode nebo DBCS.

Chcete-li určit jazyk v Unicode, použijte N 'Jazyk'. Pokud je zadán jako proměnná, musí mít proměnnou hodnotu sysname datový typ (název systému datový typ se používá pro sloupce tabulky, proměnné a parametry uložených procedur, které ukládají názvy objektů).

Příklad 1 – Nastavení jazyka

Zde je příklad nastavení jazyka pro aktuální relaci na britskou:

SET LANGUAGE British;

Výsledek:

Changed language setting to British.

Zde je příklad nastavení jazyka pro aktuální relaci na němčinu:

SET LANGUAGE German;

Výsledek:

Die Spracheneinstellung wurde in Deutsch geändert.

Takže vidíme, že výstup je již v nově zadaném jazyce.

Příklad 2 – Spuštění dotazu

Změna jazyka má vliv na formátování dat. Zde je příklad, který ukáže, co tím myslím.

Nejprve změníme jazyk na British a poté spusťte dotaz pro převod řetězce na datum datový typ:

SET LANGUAGE British;
SELECT CONVERT(date, '09/01/2030') AS 'Convert';

Výsledek:

+------------+
| Convert    |
|------------|
| 2030-01-09 |
+------------+
Changed language setting to British.

V tomto případě je datum přeloženo jako 9. ledna.

Poté změníme jazyk na us_English a spusťte stejný dotaz:

SET LANGUAGE us_english;
SELECT CONVERT(date, '09/01/2030') AS 'Convert';

Výsledek:

+------------+
| Convert    |
|------------|
| 2030-09-01 |
+------------+
Changed language setting to us_english.

Takže v tomto případě bylo datum přeloženo na 1. září kvůli novému nastavení jazyka.

Nastavení jazyka na úrovni dotazu

Některé funkce T-SQL umožňují určit jazyk/kulturu, která se má použít na úrovni dotazu. Například PARSE() přijímá volitelný argument, který se používá k určení způsobu formátování poskytnutého řetězce. To vám umožňuje nastavit jazyk/kulturu, která se má používat pouze v rámci daného dotazu (a dokonce i různých částí dotazu), aniž byste museli měnit nastavení jazyka pro aktuální relaci.

Zde je příklad, který demonstruje, co tím myslím:

SELECT 
    PARSE('01/06/2018' AS date USING 'en-US') AS 'en-US',
    PARSE('01/06/2018' AS date USING 'en-GB') AS 'en-GB';

Výsledek:

+------------+------------+
| en-US      | en-GB      |
|------------+------------|
| 2018-01-06 | 2018-06-01 |
+------------+------------+

Pokud tento argument neuvedete, použije se jazyk aktuální relace.

Najít aktuální jazyk

Chcete-li vrátit aktuálně používaný jazyk, můžete spustit následující příkaz:

SELECT @@LANGUAGE;

Další možnosti najdete v tématu 3 způsoby, jak získat jazyk aktuální relace na serveru SQL Server (T-SQL).

Najděte dostupné jazyky

Chcete-li vrátit seznam dostupných jazyků, můžete spustit následující kód:

EXEC sp_helplanguage;

Tím se vrátí seznam všech jazyků.

Chcete-li jej zúžit na konkrétní jazyk, přidejte název jazyka. Takhle:

EXEC sp_helplanguage Spanish;


  1. Chyba příkazu sql:sloupec .. neexistuje

  2. Simple Encrypted Arithmetic Library (SEAL) a proměnná seal::Ciphertext

  3. Jak ABS() funguje v MariaDB

  4. Přeměna libovolně mnoha řádků na sloupce v PostgreSQL