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

Ändern Sie die Sprache für die aktuelle Sitzung in SQL Server

Sie wissen vielleicht, dass beim Herstellen einer Verbindung mit SQL Server die Sprache für diese Sitzung normalerweise durch Ihre Anmeldung bestimmt wird. Wenn ein Login erstellt wird, wird ihm eine Standardsprache zugewiesen.

Die Sitzungssprache bestimmt die datetime Formate und Systemmeldungen.

Während Sie die Standardsprache für eine Anmeldung sicherlich ändern können, können Sie die Standardsprache bei Bedarf auch innerhalb einer Sitzung überschreiben. Sie können bei Bedarf zwischen den Sprachen hin- und herschalten. Oder Sie könnten sogar zwei separate Verbindungen öffnen und jeder eine andere Sprache zuweisen.

Dieser Artikel erklärt, wie Sie die Sprache innerhalb einer Sitzung ändern können.

SPRACHE EINSTELLEN

Die SET LANGUAGE -Anweisung können Sie die Sprachumgebung für die aktuelle Sitzung festlegen.

Hier ist ein Beispiel.

SET LANGUAGE British;

Dadurch wird die aktuelle Sprache auf Britisch eingestellt.

Ich kann dies mit der folgenden Abfrage überprüfen.

SELECT @@LANGUAGE;

Ergebnis:

British

Datumsformate

Sie sollten wissen, dass das Ändern der Sprache innerhalb einer Sitzung auch das Datumsformat ändert.

Hier ist eine weitere Abfrage, um dies zu veranschaulichen.

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

Beachten Sie, dass dateformat ist dmy und datefirst ist 1 . Dies entspricht dem britischen Datumsformat.

Folgendes passiert, wenn ich die Sprache auf us_english ändere .

SET LANGUAGE us_english; 
 ....... DBCC USEROPTIONS;                                                             
 Time: 0.738s
 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 |
 +-------------------------+----------------+  

Beachten Sie, dass das Datumsformat implizit geändert wird, um der US-Datumsformatierung zu entsprechen.

Wenn Sie dies als problematisch empfinden, können Sie jederzeit das Datumsformat ändern, ohne die Sprache zu ändern.

Sprache auf Abfrageebene festlegen

Einige Funktionen akzeptieren ein „Kultur“-Argument, mit dem Sie eine Sprache angeben können, die nur für diese Abfrage verwendet werden soll. Mit anderen Worten, Sie können die Sprache innerhalb einer Abfrage ad hoc ändern, ohne die Sprache Ihrer aktuellen Sitzung ändern zu müssen.

Hier ist ein Beispiel.

SET LANGUAGE us_english;
SELECT 
  FORMAT(GETDATE(), 'd') AS [My Default],
  FORMAT(GETDATE(), 'd', 'en-GB') AS [British],
  FORMAT(GETDATE(), 'd', 'de-DE') AS [German];

Ergebnis:

+--------------+------------+------------+
 | My Default   | British    | German     |
 |--------------+------------+------------|
 | 3/29/2020    | 29/03/2020 | 29.03.2020 |
 +--------------+------------+------------+  

Rufen Sie eine Liste der Sprachen auf

Sie können die folgende Abfrage ausführen, um eine Liste der in SQL Server verfügbaren Sprachen zu erhalten.

EXEC sp_helplanguage;

Sie können es auch auf eine bestimmte Sprache eingrenzen, indem Sie den Namen oder Alias ​​der Sprache anhängen.

EXEC sp_helplanguage Italian;