Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Como definir o idioma atual no SQL Server (T-SQL)


No SQL Server, você pode definir o idioma a ser usado para a sessão atual. A configuração de idioma atual determina o idioma usado em todas as mensagens do sistema, bem como os formatos de data/hora a serem usados.

Este artigo demonstra como usar o T-SQL para definir o ambiente de idioma atual no SQL Server.


Sintaxe


A sintaxe para definir o idioma atual é assim:
SET LANGUAGE { [ N ] 'language' | @language_var }

Onde [N]'language' | @language_var é o nome do idioma armazenado em sys.syslanguages visão de compatibilidade do sistema. Esse argumento pode ser Unicode ou DBCS convertido em Unicode.

Para especificar um idioma em Unicode, use N 'Língua'. Se especificado como uma variável, a variável deve ser de sysname tipo de dados (o sysname tipo de dados é usado para colunas de tabela, variáveis ​​e parâmetros de procedimento armazenado que armazenam nomes de objetos).

Exemplo 1 – Configurando o idioma


Aqui está um exemplo de configuração do idioma da sessão atual para britânico:
SET LANGUAGE British;

Resultado:
Changed language setting to British.

Aqui está um exemplo de configuração do idioma da sessão atual para alemão:
SET LANGUAGE German;

Resultado:
Die Spracheneinstellung wurde in Deutsch geändert.

Assim, podemos ver que a saída já está no idioma recém-especificado.

Exemplo 2 – Executando uma consulta


A alteração do idioma afeta a formatação das datas. Aqui está um exemplo para mostrar o que quero dizer.

Primeiro, alteramos o idioma para British , execute uma consulta para converter uma string em uma data tipo de dados:
SET LANGUAGE British;
SELECT CONVERT(date, '09/01/2030') AS 'Convert';

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

Neste caso, a data é traduzida como sendo 9 de janeiro.

Em seguida, alteramos o idioma para us_English e execute a mesma consulta:
SET LANGUAGE us_english;
SELECT CONVERT(date, '09/01/2030') AS 'Convert';

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

Portanto, neste caso, a data foi traduzida como 1º de setembro, devido às novas configurações de idioma.

Definindo o idioma no nível da consulta


Algumas funções T-SQL permitem especificar um idioma/cultura a ser usado no nível de consulta. Por exemplo, PARSE() aceita um argumento opcional que é usado para determinar como a string fornecida é formatada. Isso permite que você defina o idioma/cultura a ser usado apenas nessa consulta (e até mesmo em diferentes partes da consulta) sem a necessidade de alterar as configurações de idioma da sessão atual.

Aqui está um exemplo para demonstrar o que quero dizer:
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 |
+------------+------------+

Se você não fornecer esse argumento, o idioma da sessão atual será usado.

Encontre o idioma atual


Você pode executar a seguinte instrução para retornar o idioma em uso no momento:
SELECT @@LANGUAGE;

Para obter mais opções, consulte 3 maneiras de obter o idioma da sessão atual no SQL Server (T-SQL).

Encontre os idiomas disponíveis


Você pode executar o seguinte código para retornar uma lista de idiomas disponíveis:
EXEC sp_helplanguage;

Isso retorna uma lista de todos os idiomas.

Para reduzi-lo a um idioma específico, adicione o nome do idioma. Assim:
EXEC sp_helplanguage Spanish;