No SQL Server, você pode descobrir o idioma padrão de um determinado usuário consultando o
sys.server_principals
visualização do catálogo do sistema. Essa exibição contém uma linha para cada principal de nível de servidor. Ele contém informações como nome do principal, tipo, data de criação/modificação, banco de dados padrão, idioma padrão, etc. Um principal é uma entidade que pode solicitar recursos do SQL Server.
Um principal pode ser qualquer um dos seguintes:
Principais no nível do Windows
- Login de domínio do Windows
- Login local do Windows
Principal de nível do SQL Server
- Login do SQL Server
Principais no nível do banco de dados
- Usuário do banco de dados
- Função do banco de dados
- Função do aplicativo
Exemplo de retorno do idioma padrão de um principal
Para obter o idioma padrão para um determinado principal, você pode consultar o
sys.server_principals
ver e usar um WHERE
cláusula para o nome principal em que você está interessado. Assim:
SELECT type_desc, default_database_name, default_language_name FROM master.sys.server_principals WHERE name = 'sa';
Resultado:
+-------------+-------------------------+-------------------------+ | type_desc | default_database_name | default_language_name | |-------------+-------------------------+-------------------------| | SQL_LOGIN | master | us_english | +-------------+-------------------------+-------------------------+
Este exemplo obtém o idioma padrão para o
sa
diretor. O nome principal é exclusivo em um servidor. Este exemplo também retorna o banco de dados padrão, bem como o tipo principal. Nesse caso, o principal é um logon do SQL Server. Aqui está outro exemplo usando um usuário diferente:
SELECT type_desc, default_database_name, default_language_name FROM master.sys.server_principals WHERE name = 'Bach';
Resultado:
+-------------+-------------------------+-------------------------+ | type_desc | default_database_name | default_language_name | |-------------+-------------------------+-------------------------| | SQL_LOGIN | Music | German | +-------------+-------------------------+-------------------------+
Nesse caso, o logon tem um banco de dados e um idioma padrão diferentes.
Claro, você sempre pode usar um asterisco para retornar todas as colunas, se necessário.
Observe que qualquer login pode ver seu próprio nome de login, os logins do sistema e as funções de servidor fixas. Para ver outros logins, requer
ALTER ANY LOGIN
, ou uma permissão no login. Para ver as funções de servidor definidas pelo usuário, é necessário ALTER ANY SERVER ROLE
, ou participação na função. Idioma padrão x idioma atual
Na maioria dos casos, o idioma atual de um usuário para sua sessão será o idioma padrão. Mas isso nem sempre é necessariamente o caso, porque um usuário pode alterar o idioma atual usando o
SET LANGUAGE
demonstração. Isso mudará o idioma da sessão atual, mas o idioma padrão permanecerá no que for. Para saber mais, consulte Como definir o idioma atual no SQL Server (T-SQL) e 3 maneiras de obter o idioma da sessão atual no SQL Server (T-SQL).