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;