Der er flere måder at få det sprog, der i øjeblikket bruges i SQL Server.
Sproget for den aktuelle session vil ofte være standardsproget for login, men det er ikke nødvendigvis altid tilfældet. En bruger kan ændre det aktuelle sprog under sessionen.
Nogle af SQL Servers indbyggede funktioner accepterer også et argument, der giver dig mulighed for at angive et sprog for den specifikke forespørgsel.
Denne artikel viser dig, hvordan du returnerer det sprog, der bruges i øjeblikket.
@@LANGUAGE
@@LANGUAGE
konfigurationsfunktionen er lavet specifikt til at returnere navnet på det sprog, der bruges i øjeblikket.
Her er et eksempel på brug.
SELECT @@LANGUAGE;
Resultat:
us_english
Dette er standardsproget for mit login.
Her er et eksempel på at ændre sproget under min session og derefter køre @@LANGUAGE
igen.
SET LANGUAGE British;
SELECT @@LANGUAGE;
Resultat:
British
DBCC-BRUGERINDSTILLINGER
DBCC USEROPTIONS
giver dig også mulighed for at få det sprog, der bruges i øjeblikket, sammen med et par andre konfigurationsmuligheder.
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 | +-------------------------+----------------+
Jeg kørte den forespørgsel umiddelbart efter det forrige eksempel, og så returnerer den stadig britisk som sprog.
Bemærk også, at sproget implicit påvirker dateformat
og datefirst
værdier. Standardværdierne for disse værdier, når du bruger us_english
er mdy
og 7
hhv.
Hvis jeg ændrer sproget tilbage til us_English
og kør DBCC USEROPTIONS
igen vil du se, at dateformat
og datefirst
indstillinger vender tilbage til amerikansk 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 dog altid indstille datoformatet separat til sproget, hvis du har brug for det.
sys.dm_exec_requests
sys.dm_exec_requests
view giver dig mulighed for at hente sproget til en specifik brugerproces. I dette tilfælde kan vi bruge @@SPID
for at angive den aktuelle brugerproces.
SELECT r.language
FROM master.sys.dm_exec_requests r
WHERE r.session_id = @@SPID;
Resultat:
us_english