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

Cambiar el idioma predeterminado de inicio de sesión en SQL Server

En SQL Server, puede usar ALTER LOGIN declaración para cambiar el idioma predeterminado para un inicio de sesión específico.

Al hacerlo, se asegurará de que cada vez que ese inicio de sesión se conecte a SQL Server, todos los formatos de fecha/hora y los mensajes del sistema se presenten en el formato y el idioma correctos.

Ejemplo

Aquí hay un ejemplo para demostrarlo.

ALTER LOGIN Bart
  WITH DEFAULT_LANGUAGE = German;

Esto cambia el idioma de Bart iniciar sesión en alemán.

En realidad, el alemán es solo el alias. El nombre real del idioma es Deutsch. Entonces puede usar el nombre o el alias con esta declaración.

Ahora, cuando Bart inicia sesión y ejecuta la siguiente declaración, obtiene Deutsch como su idioma.

SELECT @@LANGUAGE;

Resultado:

Deutsch

Formatos de fecha

Cambiar el idioma predeterminado del inicio de sesión también cambia la forma en que se formatean los valores de fecha/hora.

Por ejemplo, esto es lo que sucede cuando Bart ejecuta la siguiente consulta.

SELECT FORMAT(GETDATE(), 'd');

Resultado:

30.03.2020

Esta función genera la fecha en un formato compatible con el idioma alemán/alemán.

Sin embargo, Bart tiene la capacidad de anular esta configuración.

Anular el idioma predeterminado

Tenga en cuenta que Bart aún puede anular su idioma predeterminado desde su sesión usando SET LANGUAGE .

SET LANGUAGE Spanish;

Resultado:

Se cambió la configuración de idioma a Español. 

También puede establecer explícitamente un idioma para algunas consultas, como cuando usa FORMAT() o la función PARSE() función para dar formato a los valores de fecha/hora. Estas funciones aceptan un argumento de "cultura" opcional que le permite especificar el idioma que debe usarse para formatear la salida.

Esta es la misma consulta del ejemplo anterior, pero esta vez, Bart agrega un tercer argumento, que especifica un idioma diferente para usar en la salida.

SELECT 
  FORMAT(GETDATE(), 'd') AS [Default],
  FORMAT(GETDATE(), 'd', 'en-US') AS [en-US];

Resultado:

+------------+-----------+
 | Default    | en-US     |
 |------------+-----------|
 | 30.03.2020 | 3/30/2020 |
 +------------+-----------+