Existem várias maneiras de obter o idioma que está sendo usado no SQL Server.
O idioma da sessão atual geralmente será o idioma padrão para o login, mas isso nem sempre é necessariamente o caso. Um usuário pode alterar o idioma atual durante a sessão.
Além disso, algumas das funções internas do SQL Server aceitam um argumento que permite especificar um idioma para essa consulta específica.
Este artigo mostra como retornar o idioma que está sendo usado no momento.
@@LANGUAGE
O
@@LANGUAGE A função de configuração é feita especificamente para retornar o nome do idioma que está sendo usado no momento. Aqui está um exemplo de uso.
SELECT @@LANGUAGE; Resultado:
us_english
Este é o idioma padrão para o meu login.
Aqui está um exemplo de como alterar o idioma durante minha sessão e, em seguida, executar
@@LANGUAGE novamente. SET LANGUAGE British;
SELECT @@LANGUAGE; Resultado:
British
OPÇÕES DE USUÁRIO DBCC
As
DBCC USEROPTIONS também permite que você obtenha o idioma que está sendo usado no momento, juntamente com algumas outras opções de configuração. DBCC USEROPTIONS; Resultado:
+-------------------------+----------------+ | Set Option | Value | |-------------------------+----------------| | textsize | -1 | | language | British | | dateformat | dmy | | datefirst | 1 | | 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 | +-------------------------+----------------+
Executei essa consulta imediatamente após o exemplo anterior e, portanto, ela ainda retorna British como o idioma.
Observe também que a linguagem afeta implicitamente o
dateformat e datefirst valores. Os valores padrão para esses valores ao usar us_english é mdy e 7 respectivamente. Se eu mudar o idioma de volta para
us_English e execute DBCC USEROPTIONS novamente, você verá que o dateformat e datefirst as configurações são revertidas para o formato americano. SET LANGUAGE us_English; ....... DBCC USEROPTIONS; Time: 0.740s Changed language setting to us_english. +-------------------------+----------------+ | 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 | +-------------------------+----------------+
No entanto, você sempre pode definir o formato de data separadamente para o idioma, se necessário.
sys.dm_exec_requests
Os
sys.dm_exec_requests view permite que você recupere o idioma para um processo de usuário específico. Neste caso podemos usar @@SPID para especificar o processo do usuário atual. SELECT r.language
FROM master.sys.dm_exec_requests r
WHERE r.session_id = @@SPID; Resultado:
us_english