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.