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

Cómo configurar el idioma actual en SQL Server (T-SQL)

En SQL Server, puede establecer el idioma que se utilizará para la sesión actual. La configuración de idioma actual determina el idioma utilizado en todos los mensajes del sistema, así como los formatos de fecha/hora que se utilizarán.

Este artículo demuestra cómo usar T-SQL para configurar el entorno de idioma actual en SQL Server.

Sintaxis

La sintaxis para configurar el idioma actual es así:

SET LANGUAGE { [ N ] 'language' | @language_var }

Donde [N]'language' | @language_var es el nombre del idioma almacenado en sys.syslanguages vista de compatibilidad del sistema. Este argumento puede ser Unicode o DBCS convertido a Unicode.

Para especificar un idioma en Unicode, use N 'idioma'. Si se especifica como una variable, la variable debe ser de sysname tipo de datos (el sysname El tipo de datos se usa para columnas de tablas, variables y parámetros de procedimientos almacenados que almacenan nombres de objetos).

Ejemplo 1:configuración del idioma

Aquí hay un ejemplo de cómo configurar el idioma para la sesión actual en británico:

SET LANGUAGE British;

Resultado:

Changed language setting to British.

Este es un ejemplo de configuración del idioma de la sesión actual en alemán:

SET LANGUAGE German;

Resultado:

Die Spracheneinstellung wurde in Deutsch geändert.

Entonces podemos ver que la salida ya está en el idioma recién especificado.

Ejemplo 2:ejecución de una consulta

Cambiar el idioma afecta el formato de las fechas. Aquí hay un ejemplo para mostrar lo que quiero decir.

Primero, cambiamos el idioma a British , luego ejecute una consulta para convertir una cadena en una fecha tipo de datos:

SET LANGUAGE British;
SELECT CONVERT(date, '09/01/2030') AS 'Convert';

Resultado:

+------------+
| Convert    |
|------------|
| 2030-01-09 |
+------------+
Changed language setting to British.

En este caso, la fecha se traduce como el 9 de enero.

Luego cambiamos el idioma a us_English y ejecuta la misma consulta:

SET LANGUAGE us_english;
SELECT CONVERT(date, '09/01/2030') AS 'Convert';

Resultado:

+------------+
| Convert    |
|------------|
| 2030-09-01 |
+------------+
Changed language setting to us_english.

Entonces, en este caso, la fecha se tradujo como el 1 de septiembre, debido a la nueva configuración de idioma.

Configuración del idioma en el nivel de consulta

Algunas funciones de T-SQL le permiten especificar un idioma/cultura para usar en el nivel de consulta. Por ejemplo, PARSE() acepta un argumento opcional que se utiliza para determinar cómo se formatea la cadena proporcionada. Esto le permite configurar el idioma o la cultura que se usará solo dentro de esa consulta (e incluso en diferentes partes de la consulta) sin necesidad de cambiar la configuración de idioma para la sesión actual.

Aquí hay un ejemplo para demostrar lo que quiero decir:

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';

Resultado:

+------------+------------+
| en-US      | en-GB      |
|------------+------------|
| 2018-01-06 | 2018-06-01 |
+------------+------------+

Si no proporciona este argumento, se utiliza el idioma de la sesión actual.

Buscar el idioma actual

Puede ejecutar la siguiente declaración para devolver el idioma que se está utilizando actualmente:

SELECT @@LANGUAGE;

Para obtener más opciones, consulte 3 formas de obtener el idioma de la sesión actual en SQL Server (T-SQL).

Encuentre los idiomas disponibles

Puede ejecutar el siguiente código para obtener una lista de idiomas disponibles:

EXEC sp_helplanguage;

Esto devuelve una lista de todos los idiomas.

Para restringirlo a un idioma en particular, agregue el nombre del idioma. Así:

EXEC sp_helplanguage Spanish;