Има няколко начина да получите езика, който в момента се използва в SQL Server.
Езикът на текущата сесия често ще бъде езикът по подразбиране за влизане, но това не винаги е така. Потребителят може да промени текущия език по време на сесията.
Освен това някои от вградените функции на SQL Server приемат аргумент, който ви позволява да посочите език за тази конкретна заявка.
Тази статия ви показва как да върнете езика, който се използва в момента.
@@ЕЗИК
@@LANGUAGE
конфигурационната функция е направена специално за връщане на името на езика, който се използва в момента.
Ето пример за употреба.
SELECT @@LANGUAGE;
Резултат:
us_english
Това е езикът по подразбиране за моето влизане.
Ето пример за промяна на езика по време на моята сесия, след което се изпълнява @@LANGUAGE
отново.
SET LANGUAGE British;
SELECT @@LANGUAGE;
Резултат:
British
ПОТРЕБИТЕЛСКИ ОПЦИИ DBCC
DBCC USEROPTIONS
също така ви позволява да получите езика, който се използва в момента, заедно с няколко други опции за конфигурация.
DBCC USEROPTIONS;
Резултат:
+-------------------------+----------------+ | 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 | +-------------------------+----------------+
Изпълних тази заявка веднага след предишния пример и така тя все още връща британски като език.
Също така имайте предвид, че езикът имплицитно засяга dateformat
и datefirst
стойности. Стойностите по подразбиране за тези стойности, когато използвате us_english
е mdy
и 7
съответно.
Ако сменя езика обратно на us_English
и стартирайте DBCC USEROPTIONS
отново ще видите, че dateformat
и datefirst
настройките се връщат към американски формат.
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 | +-------------------------+----------------+
Въпреки това, винаги можете да зададете формата на датата отделно на езика, ако е необходимо.
sys.dm_exec_requests
sys.dm_exec_requests
view ви позволява да извлечете езика за конкретен потребителски процес. В този случай можем да използваме @@SPID
за да посочите текущия потребителски процес.
SELECT r.language
FROM master.sys.dm_exec_requests r
WHERE r.session_id = @@SPID;
Резултат:
us_english