Det finns flera sätt att få det språk som för närvarande används i SQL Server.
Språket för den aktuella sessionen kommer ofta att vara standardspråket för inloggningen, men detta är inte nödvändigtvis alltid fallet. En användare kan ändra det aktuella språket under sessionen.
Vissa av SQL Servers inbyggda funktioner accepterar också ett argument som låter dig ange ett språk för den specifika frågan.
Den här artikeln visar hur du returnerar språket som används för närvarande.
@@LANGUAGE
@@LANGUAGE
konfigurationsfunktionen är gjord specifikt för att returnera namnet på det språk som för närvarande används.
Här är ett exempel på användning.
SELECT @@LANGUAGE;
Resultat:
us_english
Detta är standardspråket för min inloggning.
Här är ett exempel på att byta språk under min session och sedan köra @@LANGUAGE
igen.
SET LANGUAGE British;
SELECT @@LANGUAGE;
Resultat:
British
DBCC ANVÄNDAROPTIONER
DBCC USEROPTIONS
låter dig också få språket som används för närvarande, tillsammans med några andra konfigurationsalternativ.
DBCC USEROPTIONS;
Resultat:
+-------------------------+----------------+ | 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 | +-------------------------+----------------+
Jag körde den frågan omedelbart efter det föregående exemplet och därför returnerar den fortfarande brittiskt som språk.
Observera också att språket implicit påverkar dateformat
och datefirst
värden. Standardvärdena för dessa värden när du använder us_English
är mdy
och 7
respektive.
Om jag ändrar språket tillbaka till us_English
och kör DBCC USEROPTIONS
igen ser du att dateformat
och datefirst
inställningarna återgår till US-format.
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 | +-------------------------+----------------+
Du kan dock alltid ställa in datumformatet separat till språket om du behöver.
sys.dm_exec_requests
sys.dm_exec_requests
Med view kan du hämta språket för en specifik användarprocess. I det här fallet kan vi använda @@SPID
för att ange den aktuella användarprocessen.
SELECT r.language
FROM master.sys.dm_exec_requests r
WHERE r.session_id = @@SPID;
Resultat:
us_english