Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

3 façons d'obtenir la langue de la session en cours dans SQL Server (T-SQL)

Lorsqu'une nouvelle connexion est créée dans SQL Server, une langue par défaut lui est attribuée. Cette langue est utilisée pour les messages système et les formats de date/heure. Cette langue sera utilisée comme langue par défaut chaque fois que cette connexion se connecte à SQL Server (mais elle peut également être modifiée dans une autre langue au cours de la session).

Si jamais vous souhaitez connaître la langue attribuée à la session en cours, vous pouvez exécuter l'une des options de cette page.

Option 1 :La fonction de configuration @@LANGUAGE

La première option pour obtenir la langue de la session en cours consiste à utiliser @@LANGUAGE fonction scalaire. Utilisez-le simplement dans le cadre d'un SELECT déclaration.

Comme ceci :

SELECT @@LANGUAGE;

Résultat :

us_english

Option 2 :la commande DBCC USEROPTIONS

Vous pouvez également exécuter DBCC USEROPTIONS pour retourner la langue courante, ainsi que d'autres options pour la connexion courante.

Comme ceci :

DBCC USEROPTIONS;

Résultat :

+-------------------------+----------------+
| 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 |
+-------------------------+----------------+

Option 3 :la  vue sys.dm_exec_requests

Cette option est un peu différente des deux options précédentes en ce que cette vue système renvoie des informations au niveau de la demande individuelle (elle renvoie des informations sur chaque demande qui s'exécute dans SQL Server). Vous pouvez le réduire à la requête actuelle (qui sera le SELECT instruction avec laquelle vous interrogez la vue).

Cette vue renvoie un nombre relativement important de colonnes, donc si vous n'êtes intéressé que par la langue, vous pouvez sélectionner uniquement cette colonne.

Voici comment renvoyer la langue utilisée dans le processus utilisateur actuel :

SELECT r.language
FROM master.sys.dm_exec_requests r
WHERE r.session_id = @@SPID;

Résultat :

+------------+
| language   |
|------------|
| us_english |
+------------+

Vous pouvez toujours changer la langue de la session en cours. Pour savoir comment, consultez Comment définir la langue actuelle dans SQL Server (T-SQL).

Notez également que certaines fonctions T-SQL intégrées acceptent des arguments pour spécifier la langue/la culture à utiliser au niveau de requête spécifique. Par exemple le PARSE() La fonction vous permet de spécifier une culture à utiliser pour la requête (ou même une partie de la requête) qui spécifie comment la chaîne donnée est formatée (pour un exemple, consultez Comment convertir une chaîne en une date/heure dans SQL Server à l'aide de PARSE( )).

La langue par défaut

Notez qu'un utilisateur peut également avoir une langue par défaut différente de la langue actuelle. S'ils utilisent le SET LANGUAGE déclaration pour passer à une autre langue, leur langue par défaut restera comme langue par défaut, même si la langue de la session en cours a changé.

Pour trouver la langue par défaut pour un utilisateur/une connexion/un rôle, consultez Comment trouver la langue par défaut d'un utilisateur dans SQL Server (T-SQL).