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

3 maneiras de obter o idioma da sessão atual no SQL Server (T-SQL)


Quando um novo logon é criado no SQL Server, ele recebe um idioma padrão. Este idioma é usado para mensagens do sistema e formatos de data/hora. Esse idioma será usado como o idioma padrão sempre que esse logon se conectar ao SQL Server (mas também pode ser alterado para um idioma diferente dentro da sessão).

Se você quiser descobrir o idioma atribuído à sessão atual, poderá executar uma das opções nesta página.


Opção 1:A função de configuração @@LANGUAGE


A primeira opção para obter o idioma da sessão atual é usar o @@LANGUAGE função escalar. Basta usá-lo como parte de um SELECT demonstração.

Assim:
SELECT @@LANGUAGE;

Resultado:
us_english

Opção 2:o comando DBCC USEROPTIONS


Você também pode executar DBCC USEROPTIONS para retornar o idioma atual, bem como outras opções para a conexão atual.

Assim:
DBCC USEROPTIONS;

Resultado:
+-------------------------+----------------+
| 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 |
+-------------------------+----------------+

Opção 3:a visualização  sys.dm_exec_requests


Essa opção é um pouco diferente das duas opções anteriores, pois essa exibição do sistema retorna informações no nível de solicitação individual (retorna informações sobre cada solicitação que está sendo executada no SQL Server). Você pode reduzi-lo ao pedido atual (que será o SELECT instrução com a qual você consulta a exibição).

Essa exibição retorna um número relativamente grande de colunas, portanto, se você estiver interessado apenas no idioma, poderá selecionar apenas essa coluna.

Veja como retornar o idioma que está sendo usado no processo do usuário atual:
SELECT r.language
FROM master.sys.dm_exec_requests r
WHERE r.session_id = @@SPID;

Resultado:
+------------+
| language   |
|------------|
| us_english |
+------------+

Você sempre pode alterar o idioma da sessão atual. Para saber como, consulte Como definir o idioma atual no SQL Server (T-SQL).

Observe também que algumas funções T-SQL embutidas aceitam argumentos para especificar o idioma/cultura a ser usado no nível de consulta específico. Por exemplo, o PARSE() A função permite que você especifique uma cultura a ser usada para a consulta (ou mesmo parte da consulta) que especifica como a determinada string é formatada (por exemplo, consulte Como converter uma string em uma data/hora no SQL Server usando PARSE( )).

O idioma padrão


Observe que um usuário também pode ter um idioma padrão diferente do idioma atual. Se eles usam o SET LANGUAGE instrução para mudar para outro idioma, seu idioma padrão permanecerá como seu idioma padrão, mesmo que o idioma da sessão atual tenha sido alterado.

Para encontrar o idioma padrão de um usuário/login/função, consulte Como encontrar o idioma padrão de um usuário no SQL Server (T-SQL).