sql >> Base de Datos >  >> RDS >> Sqlserver

Obtener el idioma que se usa actualmente en SQL Server

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