I SQL Server kan du ta reda på standardspråket för en given användare genom att fråga sys.server_principals
systemkatalogvy.
Den här vyn innehåller en rad för varje principal på servernivå. Den innehåller information som huvudmannens namn, typ, skapa/ändra datum, standarddatabas, standardspråk, etc. En principal är en enhet som kan begära SQL Server-resurser.
En huvudman kan vara något av följande:
principer på Windows-nivå
- Windows domäninloggning
- Lokal inloggning för Windows
SQL-servernivåprincip
- SQL-serverinloggning
Rektorer på databasnivå
- Databasanvändare
- Databasroll
- Applikationsroll
Exempel på att returnera standardspråket för en huvudman
För att få standardspråket för en given principal kan du fråga sys.server_principals
visa och använd en WHERE
klausul för huvudnamnet som du är intresserad av.
Så här:
SELECT type_desc, default_database_name, default_language_name FROM master.sys.server_principals WHERE name = 'sa';
Resultat:
+-------------+-------------------------+-------------------------+ | type_desc | default_database_name | default_language_name | |-------------+-------------------------+-------------------------| | SQL_LOGIN | master | us_english | +-------------+-------------------------+-------------------------+
Det här exemplet får standardspråket för sa
rektor. Huvudnamnet är unikt inom en server. Det här exemplet returnerar också standarddatabasen såväl som huvudtypen. I det här fallet är huvudmannen en SQL Server Login.
Här är ett annat exempel med en annan användare:
SELECT type_desc, default_database_name, default_language_name FROM master.sys.server_principals WHERE name = 'Bach';
Resultat:
+-------------+-------------------------+-------------------------+ | type_desc | default_database_name | default_language_name | |-------------+-------------------------+-------------------------| | SQL_LOGIN | Music | German | +-------------+-------------------------+-------------------------+
I det här fallet har inloggningen en annan standarddatabas och ett annat språk.
Naturligtvis kan du alltid använda en asterisk för att returnera alla kolumner om det behövs.
Observera att alla inloggningar kan se sitt eget inloggningsnamn, systeminloggningarna och de fasta serverrollerna. För att se andra inloggningar krävs ALTER ANY LOGIN
, eller en behörighet för inloggningen. För att se användardefinierade serverroller krävs ALTER ANY SERVER ROLE
, eller medlemskap i rollen.
Standardspråk kontra aktuellt språk
I de flesta fall kommer en användares aktuella språk för sin session att vara standardspråket. Men detta är inte nödvändigtvis fallet, eftersom en användare kan ändra det aktuella språket genom att använda SET LANGUAGE
påstående. Detta kommer att ändra språket för den aktuella sessionen, men deras standardspråk kommer att förbli vad det än är.
Om du vill veta mer, se Så här ställer du in det aktuella språket i SQL Server (T-SQL) och 3 sätt att få språket för den aktuella sessionen i SQL Server (T-SQL).