В SQL Server можете да зададете езика, който да се използва за текущата сесия. Текущата езикова настройка определя езика, използван за всички системни съобщения, както и форматите за дата/час, които да се използват.
Тази статия демонстрира как да използвате T-SQL за задаване на текущата езикова среда в SQL Server.
Синтаксис
Синтаксисът за настройка на текущия език е следният:
SET LANGUAGE { [ N ] 'language' | @language_var }
Където [N]'language' | @language_var
е името на езика, както е съхранено в sys.syslanguages
изглед за съвместимост на системата. Този аргумент може да бъде или Unicode, или DBCS, конвертиран в Unicode.
За да посочите език в Unicode, използвайте N „език“. Ако е посочена като променлива, променливата трябва да е с sysname тип данни (името на системата типът данни се използва за колони на таблица, променливи и параметри на съхранените процедури, които съхраняват имена на обекти).
Пример 1 – Задаване на език
Ето пример за настройка на британски език за текущата сесия:
SET LANGUAGE British;
Резултат:
Changed language setting to British.
Ето пример за настройка на езика за текущата сесия на немски:
SET LANGUAGE German;
Резултат:
Die Spracheneinstellung wurde in Deutsch geändert.
Така можем да видим, че изходът вече е на новопосочения език.
Пример 2 – Изпълнение на заявка
Промяната на езика влияе върху начина на форматиране на датите. Ето пример, за да покажа какво имам предвид.
Първо сменяме езика на British
, след което изпълнете заявка за преобразуване на низ в дата тип данни:
SET LANGUAGE British; SELECT CONVERT(date, '09/01/2030') AS 'Convert';
Резултат:
+------------+ | Convert | |------------| | 2030-01-09 | +------------+ Changed language setting to British.
В този случай датата се превежда като 9 януари.
След това сменяме езика на us_English
и изпълнете същата заявка:
SET LANGUAGE us_english; SELECT CONVERT(date, '09/01/2030') AS 'Convert';
Резултат:
+------------+ | Convert | |------------| | 2030-09-01 | +------------+ Changed language setting to us_english.
Така че в този случай датата беше преведена като 1 септември поради новите езикови настройки.
Задаване на езика на ниво заявка
Някои функции на T-SQL ви позволяват да посочите език/култура, която да се използва на ниво заявка. Например, PARSE()
приема незадължителен аргумент, който се използва, за да определи как е форматиран предоставеният низ. Това ви позволява да настроите езика/културата да се използва само в рамките на тази заявка (и дори различни части от заявката), без да е необходимо да променяте езиковите настройки за текущата сесия.
Ето пример, за да демонстрирам какво имам предвид:
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';
Резултат:
+------------+------------+ | en-US | en-GB | |------------+------------| | 2018-01-06 | 2018-06-01 | +------------+------------+
Ако не предоставите този аргумент, се използва езикът на текущата сесия.
Намерете текущия език
Можете да изпълните следния оператор, за да върнете езика, който се използва в момента:
SELECT @@LANGUAGE;
За повече опции вижте 3 начина за получаване на езика на текущата сесия в SQL Server (T-SQL).
Намерете наличните езици
Можете да изпълните следния код, за да върнете списък с налични езици:
EXEC sp_helplanguage;
Това връща списък с всички езици.
За да го стесните до конкретен език, добавете името на езика. Като това:
EXEC sp_helplanguage Spanish;