Hay varias formas de obtener el idioma que se usa actualmente en SQL Server.
El idioma de la sesión actual a menudo será el idioma predeterminado para el inicio de sesión, pero no siempre es necesariamente el caso. Un usuario puede cambiar el idioma actual durante la sesión.
Además, algunas de las funciones integradas de SQL Server aceptan un argumento que le permite especificar un idioma para esa consulta específica.
Este artículo le muestra cómo devolver el idioma que se está utilizando actualmente.
@@IDIOMA
El @@LANGUAGE
La función de configuración se realiza específicamente para devolver el nombre del idioma que se está utilizando actualmente.
Aquí hay un ejemplo de uso.
SELECT @@LANGUAGE;
Resultado:
us_english
Este es el idioma predeterminado para mi inicio de sesión.
Aquí hay un ejemplo de cómo cambiar el idioma durante mi sesión y luego ejecutar @@LANGUAGE
de nuevo.
SET LANGUAGE British;
SELECT @@LANGUAGE;
Resultado:
British
OPCIONES DE USUARIO DE DBCC
Las DBCC USEROPTIONS
también le permite obtener el idioma que se está utilizando actualmente, junto con algunas otras opciones de configuración.
DBCC USEROPTIONS;
Resultado:
+-------------------------+----------------+ | 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 | +-------------------------+----------------+
Ejecuté esa consulta inmediatamente después del ejemplo anterior y, por lo tanto, sigue devolviendo el idioma británico.
También tenga en cuenta que el idioma afecta implícitamente el dateformat
y datefirst
valores. Los valores predeterminados para esos valores cuando se usa us_english
es mdy
y 7
respectivamente.
Si vuelvo a cambiar el idioma a us_English
y ejecute DBCC USEROPTIONS
de nuevo, verá que el dateformat
y datefirst
la configuración vuelve al formato de EE. UU.
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 | +-------------------------+----------------+
Sin embargo, siempre puede configurar el formato de fecha por separado para el idioma si lo necesita.
sys.dm_exec_requests
sys.dm_exec_requests
view le permite recuperar el idioma para un proceso de usuario específico. En este caso podemos usar @@SPID
para especificar el proceso de usuario actual.
SELECT r.language
FROM master.sys.dm_exec_requests r
WHERE r.session_id = @@SPID;
Resultado:
us_english