Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Holen Sie sich die Sprache, die derzeit in SQL Server verwendet wird

Es gibt mehrere Möglichkeiten, die aktuell in SQL Server verwendete Sprache abzurufen.

Die Sprache der aktuellen Sitzung wird oft die Standardsprache für die Anmeldung sein, aber das muss nicht immer der Fall sein. Ein Benutzer kann die aktuelle Sprache während der Sitzung ändern.

Außerdem akzeptieren einige der integrierten Funktionen von SQL Server ein Argument, mit dem Sie eine Sprache für diese bestimmte Abfrage angeben können.

Dieser Artikel zeigt Ihnen, wie Sie die aktuell verwendete Sprache zurückgeben.

@@SPRACHE

Der @@LANGUAGE Die Konfigurationsfunktion wurde speziell für die Rückgabe des Namens der aktuell verwendeten Sprache erstellt.

Hier ist ein Anwendungsbeispiel.

SELECT @@LANGUAGE;

Ergebnis:

us_english

Dies ist die Standardsprache für mein Login.

Hier ist ein Beispiel für das Ändern der Sprache während meiner Sitzung und das anschließende Ausführen von @@LANGUAGE nochmal.

SET LANGUAGE British;
SELECT @@LANGUAGE;

Ergebnis:

British

DBCC-BENUTZEROPTIONEN

Die DBCC USEROPTIONS ermöglicht Ihnen auch, die aktuell verwendete Sprache zusammen mit einigen anderen Konfigurationsoptionen abzurufen.

DBCC USEROPTIONS;

Ergebnis:

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

Ich habe diese Abfrage unmittelbar nach dem vorherigen Beispiel ausgeführt und gibt immer noch Britisch als Sprache zurück.

Beachten Sie auch, dass die Sprache implizit das dateformat beeinflusst und datefirst Werte. Die Standardwerte für diese Werte bei Verwendung von us_english ist mdy und 7 bzw..

Wenn ich die Sprache wieder auf us_English ändere und führen Sie DBCC USEROPTIONS aus Auch hier sehen Sie das dateformat und datefirst Einstellungen werden auf das US-Format zurückgesetzt.

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

Sie können das Datumsformat jedoch bei Bedarf immer getrennt von der Sprache einstellen.

sys.dm_exec_requests

Die sys.dm_exec_requests view ermöglicht es Ihnen, die Sprache für einen bestimmten Benutzerprozess abzurufen. In diesem Fall können wir @@SPID verwenden um den aktuellen Benutzerprozess anzugeben.

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

Ergebnis:

us_english