sql >> Database >  >> RDS >> Sqlserver

De standaardtaal van een gebruiker vinden in SQL Server (T-SQL)

In SQL Server kunt u de standaardtaal voor een bepaalde gebruiker achterhalen door de sys.server_principals op te vragen. systeemcatalogusweergave.

Deze weergave bevat een rij voor elke principal op serverniveau. Het bevat informatie zoals de naam van de principal, het type, de aanmaak-/wijzigingsdatum, de standaarddatabase, de standaardtaal, enz. Een principal is een entiteit die SQL Server-bronnen kan aanvragen.

Een opdrachtgever kan een van de volgende zijn:

Principals op Windows-niveau

  • Aanmelden bij Windows-domein
  • Lokale aanmelding bij Windows

Principal op SQL Server-niveau

  • SQL Server-aanmelding

Principals op databaseniveau

  • Databasegebruiker
  • Databaserol
  • Toepassingsrol

Voorbeeld van het teruggeven van de standaardtaal van een opdrachtgever

Om de standaardtaal voor een bepaalde principal te krijgen, kunt u de sys.server_principals opvragen bekijk en gebruik een WHERE clausule voor de hoofdnaam waarin u geïnteresseerd bent.

Zoals dit:

SELECT 
    type_desc,
    default_database_name,
    default_language_name 
FROM master.sys.server_principals
WHERE name = 'sa';

Resultaat:

+-------------+-------------------------+-------------------------+
| type_desc   | default_database_name   | default_language_name   |
|-------------+-------------------------+-------------------------|
| SQL_LOGIN   | master                  | us_english              |
+-------------+-------------------------+-------------------------+

Dit voorbeeld krijgt de standaardtaal voor de sa voornaam. De principal-naam is uniek binnen een server. Dit voorbeeld retourneert ook de standaarddatabase en het principal-type. In dit geval is de principal een SQL Server Login.

Hier is nog een voorbeeld met een andere gebruiker:

SELECT 
    type_desc,
    default_database_name,
    default_language_name 
FROM master.sys.server_principals
WHERE name = 'Bach';

Resultaat:

+-------------+-------------------------+-------------------------+
| type_desc   | default_database_name   | default_language_name   |
|-------------+-------------------------+-------------------------|
| SQL_LOGIN   | Music                   | German                  |
+-------------+-------------------------+-------------------------+

In dit geval heeft de login een andere standaard database en taal.

Natuurlijk kunt u indien nodig altijd een asterisk gebruiken om alle kolommen terug te geven.

Houd er rekening mee dat elke login zijn eigen loginnaam, de systeemaanmeldingen en de vaste serverrollen kan zien. Om andere logins te zien, vereist ALTER ANY LOGIN , of een toestemming op de login. Om door de gebruiker gedefinieerde serverrollen te zien, vereist ALTER ANY SERVER ROLE , of lidmaatschap van de rol.

Standaardtaal versus huidige taal

In de meeste gevallen is de huidige taal van een gebruiker voor zijn sessie de standaardtaal. Maar dit is niet altijd noodzakelijk het geval, omdat een gebruiker de huidige taal kan wijzigen met behulp van de SET LANGUAGE uitspraak. Dit zal de taal voor de huidige sessie veranderen, maar hun standaardtaal blijft wat het ook is.

Zie voor meer informatie De huidige taal instellen in SQL Server (T-SQL) en 3 manieren om de taal van de huidige sessie in SQL Server (T-SQL) te krijgen.


  1. Wat is Oracle SQL &PL/SQL? Alles wat een beginner moet weten

  2. [01000][unixODBC][Driver Manager]Kan lib '/usr/local/easysoft/oracle/InstantClient112/lib/libsqora.so' niet openen:bestand niet gevonden

  3. SQL Server SHOWPLAN_ALL

  4. Een getal opmaken als een percentage in MySQL