In SQL Server können Sie die Standardsprache für einen bestimmten Benutzer herausfinden, indem Sie sys.server_principals abfragen Systemkatalogansicht.
Diese Ansicht enthält eine Zeile für jeden Prinzipal auf Serverebene. Es enthält Informationen wie Name, Typ, Erstellungs-/Änderungsdatum, Standarddatenbank, Standardsprache usw. des Prinzipals. Ein Prinzipal ist eine Entität, die SQL Server-Ressourcen anfordern kann.
Ein Prinzipal könnte einer der folgenden sein:
Prinzipale auf Windows-Ebene
- Windows-Domänenanmeldung
- Lokale Windows-Anmeldung
Prinzipal auf SQL Server-Ebene
- SQL Server-Anmeldung
Principals auf Datenbankebene
- Datenbankbenutzer
- Datenbankrolle
- Anwendungsrolle
Beispiel für die Rückgabe der Standardsprache eines Prinzipals
Um die Standardsprache für einen bestimmten Prinzipal abzurufen, können Sie sys.server_principals abfragen ein WHERE anzeigen und verwenden -Klausel für den Prinzipalnamen, an dem Sie interessiert sind.
So:
SELECT
type_desc,
default_database_name,
default_language_name
FROM master.sys.server_principals
WHERE name = 'sa'; Ergebnis:
+-------------+-------------------------+-------------------------+ | type_desc | default_database_name | default_language_name | |-------------+-------------------------+-------------------------| | SQL_LOGIN | master | us_english | +-------------+-------------------------+-------------------------+
Dieses Beispiel ruft die Standardsprache für sa ab Rektor. Der Prinzipalname ist innerhalb eines Servers eindeutig. Dieses Beispiel gibt auch die Standarddatenbank sowie den Prinzipaltyp zurück. In diesem Fall ist der Prinzipal eine SQL Server-Anmeldung.
Hier ist ein weiteres Beispiel mit einem anderen Benutzer:
SELECT
type_desc,
default_database_name,
default_language_name
FROM master.sys.server_principals
WHERE name = 'Bach'; Ergebnis:
+-------------+-------------------------+-------------------------+ | type_desc | default_database_name | default_language_name | |-------------+-------------------------+-------------------------| | SQL_LOGIN | Music | German | +-------------+-------------------------+-------------------------+
In diesem Fall hat das Login eine andere Standarddatenbank und -sprache.
Natürlich können Sie bei Bedarf immer ein Sternchen verwenden, um alle Spalten zurückzugeben.
Beachten Sie, dass jeder Login seinen eigenen Login-Namen, die System-Logins und die festen Serverrollen sehen kann. Um andere Logins zu sehen, ist ALTER ANY LOGIN erforderlich , oder eine Berechtigung für die Anmeldung. Um benutzerdefinierte Serverrollen anzuzeigen, ist ALTER ANY SERVER ROLE erforderlich , oder Mitgliedschaft in der Rolle.
Standardsprache vs. aktuelle Sprache
In den meisten Fällen ist die aktuelle Sprache eines Benutzers für seine Sitzung seine Standardsprache. Dies ist jedoch nicht immer unbedingt der Fall, da ein Benutzer die aktuelle Sprache ändern kann, indem er SET LANGUAGE verwendet Erklärung. Dadurch wird die Sprache für die aktuelle Sitzung geändert, aber ihre Standardsprache bleibt unverändert.
Weitere Informationen finden Sie unter How to Set the Current Language in SQL Server (T-SQL) und 3 Ways to Get the Language of the Current Session in SQL Server (T-SQL).