Il existe plusieurs façons d'obtenir la langue actuellement utilisée dans SQL Server.
La langue de la session en cours sera souvent la langue par défaut pour la connexion, mais ce n'est pas nécessairement toujours le cas. Un utilisateur peut changer la langue courante pendant la session.
En outre, certaines des fonctions intégrées de SQL Server acceptent un argument qui vous permet de spécifier une langue pour cette requête spécifique.
Cet article vous montre comment retourner la langue actuellement utilisée.
@@LANGUE
Le @@LANGUAGE
La fonction de configuration est spécialement conçue pour renvoyer le nom de la langue actuellement utilisée.
Voici un exemple d'utilisation.
SELECT @@LANGUAGE;
Résultat :
us_english
C'est la langue par défaut pour ma connexion.
Voici un exemple de changement de langue pendant ma session, puis d'exécution de @@LANGUAGE
à nouveau.
SET LANGUAGE British;
SELECT @@LANGUAGE;
Résultat :
British
OPTIONS UTILISATEUR DBCC
Les DBCC USEROPTIONS
vous permet également d'obtenir la langue actuellement utilisée, ainsi que quelques autres options de configuration.
DBCC USEROPTIONS;
Résultat :
+-------------------------+----------------+ | 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 | +-------------------------+----------------+
J'ai exécuté cette requête immédiatement après l'exemple précédent et elle renvoie toujours le britannique comme langue.
Notez également que la langue affecte implicitement le dateformat
et datefirst
valeurs. Les valeurs par défaut pour ces valeurs lors de l'utilisation de us_english
est mdy
et 7
respectivement.
Si je change la langue en us_English
et exécutez DBCC USEROPTIONS
encore une fois, vous verrez que le dateformat
et datefirst
les paramètres reviennent au format US.
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 | +-------------------------+----------------+
Cependant, vous pouvez toujours définir le format de date séparément de la langue si nécessaire.
sys.dm_exec_requests
Les sys.dm_exec_requests
view vous permet de récupérer la langue d'un processus utilisateur spécifique. Dans ce cas, nous pouvons utiliser @@SPID
pour spécifier le processus utilisateur actuel.
SELECT r.language
FROM master.sys.dm_exec_requests r
WHERE r.session_id = @@SPID;
Résultat :
us_english