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

3 formas de obtener el idioma de la sesión actual en SQL Server (T-SQL)

Cuando se crea un nuevo inicio de sesión en SQL Server, se le asigna un idioma predeterminado. Este idioma se utiliza para los mensajes del sistema y los formatos de fecha/hora. Este idioma se utilizará como idioma predeterminado cada vez que ese inicio de sesión se conecte a SQL Server (pero también se puede cambiar a un idioma diferente dentro de la sesión).

Si alguna vez desea averiguar el idioma asignado a la sesión actual, puede ejecutar una de las opciones en esta página.

Opción 1:la función de configuración @@LANGUAGE

La primera opción para obtener el idioma de la sesión actual es usar @@LANGUAGE función escalar. Simplemente utilícelo como parte de un SELECT declaración.

Así:

SELECT @@LANGUAGE;

Resultado:

us_english

Opción 2:El comando DBCC USEROPTIONS

También puede ejecutar DBCC USEROPTIONS para devolver el idioma actual, así como otras opciones para la conexión actual.

Así:

DBCC USEROPTIONS;

Resultado:

+-------------------------+----------------+
| 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 |
+-------------------------+----------------+

Opción 3:la vista  sys.dm_exec_requests

Esta opción es un poco diferente a las dos opciones anteriores en que esta vista del sistema devuelve información a nivel de solicitud individual (devuelve información sobre cada solicitud que se ejecuta en SQL Server). Puede restringirlo a la solicitud actual (que será SELECT instrucción con la que consulta la vista).

Esta vista devuelve una cantidad relativamente grande de columnas, por lo que si solo está interesado en el idioma, puede seleccionar solo esa columna.

Aquí se explica cómo devolver el idioma que se está utilizando en el proceso de usuario actual:

SELECT r.language
FROM master.sys.dm_exec_requests r
WHERE r.session_id = @@SPID;

Resultado:

+------------+
| language   |
|------------|
| us_english |
+------------+

Siempre puede cambiar el idioma de la sesión actual. Para saber cómo, consulte Cómo configurar el idioma actual en SQL Server (T-SQL).

También tenga en cuenta que algunas funciones T-SQL incorporadas aceptan argumentos para especificar el idioma o la cultura que se utilizará en el nivel de consulta específico. Por ejemplo, PARSE() le permite especificar una referencia cultural para usar en la consulta (o incluso parte de la consulta) que especifica cómo se formatea la cadena dada (para ver un ejemplo, consulte Cómo convertir una cadena en una fecha/hora en SQL Server usando PARSE( )).

El idioma predeterminado

Tenga en cuenta que un usuario también puede tener un idioma predeterminado que sea diferente al idioma actual. Si usan el SET LANGUAGE declaración para cambiar a otro idioma, su idioma predeterminado seguirá siendo su idioma predeterminado, aunque el idioma de la sesión actual haya cambiado.

Para encontrar el idioma predeterminado para un usuario/inicio de sesión/función, consulte Cómo encontrar el idioma predeterminado de un usuario en SQL Server (T-SQL).