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

So legen Sie die aktuelle Sprache in SQL Server (T-SQL) fest

In SQL Server können Sie die Sprache festlegen, die für die aktuelle Sitzung verwendet werden soll. Die aktuelle Spracheinstellung bestimmt die für alle Systemmeldungen verwendete Sprache sowie die zu verwendenden Datums-/Uhrzeitformate.

In diesem Artikel wird gezeigt, wie Sie mit T-SQL die aktuelle Sprachumgebung in SQL Server festlegen.

Syntax

Die Syntax zum Einstellen der aktuellen Sprache lautet wie folgt:

SET LANGUAGE { [ N ] 'language' | @language_var }

Wobei [N]'language' | @language_var ist der Name der Sprache, wie er in sys.syslanguages gespeichert ist Systemkompatibilitätsansicht. Dieses Argument kann entweder Unicode oder in Unicode konvertiertes DBCS sein.

Um eine Sprache in Unicode anzugeben, verwenden Sie N 'Sprache'. Wenn sie als Variable angegeben wird, muss die Variable sysname sein Datentyp (der sysname Datentyp wird für Tabellenspalten, Variablen und gespeicherte Prozedurparameter verwendet, die Objektnamen speichern).

Beispiel 1 – Einstellen der Sprache

Hier ist ein Beispiel für die Einstellung der Sprache für die aktuelle Sitzung auf Britisch:

SET LANGUAGE British;

Ergebnis:

Changed language setting to British.

Hier ist ein Beispiel für die Einstellung der Sprache für die aktuelle Sitzung auf Deutsch:

SET LANGUAGE German;

Ergebnis:

Die Spracheneinstellung wurde in Deutsch geändert.

So können wir sehen, dass die Ausgabe bereits in der neu angegebenen Sprache erfolgt.

Beispiel 2 – Ausführen einer Abfrage

Das Ändern der Sprache wirkt sich auf die Formatierung von Datumsangaben aus. Hier ist ein Beispiel, um zu zeigen, was ich meine.

Zuerst ändern wir die Sprache auf British , und führen Sie dann eine Abfrage aus, um eine Zeichenfolge in ein Datum umzuwandeln Datentyp:

SET LANGUAGE British;
SELECT CONVERT(date, '09/01/2030') AS 'Convert';

Ergebnis:

+------------+
| Convert    |
|------------|
| 2030-01-09 |
+------------+
Changed language setting to British.

In diesem Fall wird das Datum als 9. Januar übersetzt.

Dann ändern wir die Sprache auf us_English und dieselbe Abfrage ausführen:

SET LANGUAGE us_english;
SELECT CONVERT(date, '09/01/2030') AS 'Convert';

Ergebnis:

+------------+
| Convert    |
|------------|
| 2030-09-01 |
+------------+
Changed language setting to us_english.

In diesem Fall wurde das Datum aufgrund der neuen Spracheinstellungen also mit dem 1. September übersetzt.

Festlegen der Sprache auf Abfrageebene

Bei einigen T-SQL-Funktionen können Sie eine Sprache/Kultur angeben, die auf Abfrageebene verwendet werden soll. Beispiel:PARSE() akzeptiert ein optionales Argument, das verwendet wird, um zu bestimmen, wie die bereitgestellte Zeichenfolge formatiert ist. Auf diese Weise können Sie die Sprache/Kultur festlegen, die nur innerhalb dieser Abfrage (und sogar verschiedener Teile der Abfrage) verwendet werden soll, ohne die Spracheinstellungen für die aktuelle Sitzung ändern zu müssen.

Hier ist ein Beispiel, um zu demonstrieren, was ich meine:

SELECT 
    PARSE('01/06/2018' AS date USING 'en-US') AS 'en-US',
    PARSE('01/06/2018' AS date USING 'en-GB') AS 'en-GB';

Ergebnis:

+------------+------------+
| en-US      | en-GB      |
|------------+------------|
| 2018-01-06 | 2018-06-01 |
+------------+------------+

Wenn Sie dieses Argument nicht angeben, wird die Sprache der aktuellen Sitzung verwendet.

Finde die aktuelle Sprache

Sie können die folgende Anweisung ausführen, um die aktuell verwendete Sprache zurückzugeben:

SELECT @@LANGUAGE;

Weitere Optionen finden Sie unter 3 Möglichkeiten, die Sprache der aktuellen Sitzung in SQL Server (T-SQL) abzurufen.

Finden Sie die verfügbaren Sprachen

Sie können den folgenden Code ausführen, um eine Liste der verfügbaren Sprachen zurückzugeben:

EXEC sp_helplanguage;

Dies gibt eine Liste aller Sprachen zurück.

Um es auf eine bestimmte Sprache einzugrenzen, fügen Sie den Sprachnamen hinzu. So:

EXEC sp_helplanguage Spanish;