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;