Er zijn verschillende manieren om de taal op te halen die momenteel in SQL Server wordt gebruikt.
De taal van de huidige sessie zal vaak de standaardtaal zijn voor het inloggen, maar dit is niet altijd het geval. Een gebruiker kan tijdens de sessie de huidige taal wijzigen.
Sommige ingebouwde functies van SQL Server accepteren ook een argument waarmee u een taal voor die specifieke query kunt specificeren.
In dit artikel wordt uitgelegd hoe u de momenteel gebruikte taal kunt teruggeven.
@@LANGUAGE
De @@LANGUAGE
configuratiefunctie is speciaal gemaakt voor het retourneren van de naam van de taal die momenteel wordt gebruikt.
Hier is een gebruiksvoorbeeld.
SELECT @@LANGUAGE;
Resultaat:
us_english
Dit is de standaardtaal voor mijn login.
Hier is een voorbeeld van het veranderen van de taal tijdens mijn sessie en vervolgens @@LANGUAGE
nogmaals.
SET LANGUAGE British;
SELECT @@LANGUAGE;
Resultaat:
British
DBCC GEBRUIKERSOPTIES
De DBCC USEROPTIONS
stelt u ook in staat om de taal te krijgen die momenteel wordt gebruikt, samen met een paar andere configuratie-opties.
DBCC USEROPTIONS;
Resultaat:
+-------------------------+----------------+ | Set Option | Value | |-------------------------+----------------| | textsize | -1 | | language | British | | dateformat | dmy | | datefirst | 1 | | lock_timeout | 5000 | | quoted_identifier | SET | | arithabort | SET | | ansi_null_dflt_on | SET | | ansi_warnings | SET | | ansi_padding | SET | | ansi_nulls | SET | | concat_null_yields_null | SET | | isolation level | read committed | +-------------------------+----------------+
Ik heb die query direct na het vorige voorbeeld uitgevoerd en het geeft dus nog steeds Brits als taal terug.
Merk ook op dat de taal impliciet van invloed is op het dateformat
en datefirst
waarden. De standaardwaarden voor die waarden bij gebruik van us_english
is mdy
en 7
respectievelijk.
Als ik de taal terug verander naar us_English
en voer DBCC USEROPTIONS
. uit nogmaals, je zult zien dat de dateformat
en datefirst
instellingen worden teruggezet naar Amerikaans formaat.
SET LANGUAGE us_English; ....... DBCC USEROPTIONS; Time: 0.740s Changed language setting to us_english. +-------------------------+----------------+ | Set Option | Value | |-------------------------+----------------| | textsize | -1 | | language | us_english | | dateformat | mdy | | datefirst | 7 | | lock_timeout | 5000 | | quoted_identifier | SET | | arithabort | SET | | ansi_null_dflt_on | SET | | ansi_warnings | SET | | ansi_padding | SET | | ansi_nulls | SET | | concat_null_yields_null | SET | | isolation level | read committed | +-------------------------+----------------+
U kunt het datumformaat echter altijd apart instellen voor de taal als dat nodig is.
sys.dm_exec_requests
De sys.dm_exec_requests
view stelt u in staat om de taal voor een specifiek gebruikersproces op te halen. In dit geval kunnen we @@SPID
. gebruiken om het huidige gebruikersproces te specificeren.
SELECT r.language
FROM master.sys.dm_exec_requests r
WHERE r.session_id = @@SPID;
Resultaat:
us_english