sql >> Database teknologi >  >> RDS >> Sqlserver

Sådan indstilles det aktuelle sprog i SQL Server (T-SQL)

I SQL Server kan du indstille det sprog, der skal bruges til den aktuelle session. Den aktuelle sprogindstilling bestemmer det sprog, der bruges på alle systemmeddelelser, såvel som de dato-/tidsformater, der skal bruges.

Denne artikel viser, hvordan du bruger T-SQL til at indstille det aktuelle sprogmiljø i SQL Server.

Syntaks

Syntaksen for indstilling af det aktuelle sprog ser sådan ud:

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

Hvor [N]'language' | @language_var er navnet på sproget som gemt i sys.syslanguages systemkompatibilitetsvisning. Dette argument kan enten være Unicode eller DBCS konverteret til Unicode.

For at angive et sprog i Unicode skal du bruge N 'Sprog'. Hvis angivet som en variabel, skal variablen have sysname datatype (sysname datatype bruges til tabelkolonner, variabler og lagrede procedureparametre, der gemmer objektnavne).

Eksempel 1 – Indstilling af sproget

Her er et eksempel på indstilling af sproget for den aktuelle session til britisk:

SET LANGUAGE British;

Resultat:

Changed language setting to British.

Her er et eksempel på indstilling af sproget for den aktuelle session til tysk:

SET LANGUAGE German;

Resultat:

Die Spracheneinstellung wurde in Deutsch geändert.

Så vi kan se, at outputtet allerede er på det nyligt specificerede sprog.

Eksempel 2 – Kørsel af en forespørgsel

Ændring af sproget påvirker, hvordan datoer formateres. Her er et eksempel for at vise, hvad jeg mener.

Først ændrer vi sproget til British , kør derefter en forespørgsel for at konvertere en streng til en dato datatype:

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

Resultat:

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

I dette tilfælde oversættes datoen til den 9. januar.

Så ændrer vi sproget til us_English og kør den samme forespørgsel:

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

Resultat:

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

Så i dette tilfælde blev datoen oversat til den 1. september på grund af de nye sprogindstillinger.

Indstilling af sproget på forespørgselsniveau

Nogle T-SQL-funktioner giver dig mulighed for at angive et sprog/kultur, der skal bruges på forespørgselsniveau. For eksempel PARSE() accepterer et valgfrit argument, der bruges til at bestemme, hvordan den angivne streng formateres. Dette giver dig mulighed for at indstille sproget/kulturen til kun at blive brugt inden for denne forespørgsel (og endda forskellige dele af forespørgslen) uden at skulle ændre sprogindstillingerne for den aktuelle session.

Her er et eksempel for at demonstrere, hvad jeg mener:

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';

Resultat:

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

Hvis du ikke angiver dette argument, bruges sproget for den aktuelle session.

Find det aktuelle sprog

Du kan køre følgende erklæring for at returnere det sprog, der bruges i øjeblikket:

SELECT @@LANGUAGE;

For flere muligheder, se 3 måder at få sproget for den aktuelle session i SQL Server (T-SQL).

Find de tilgængelige sprog

Du kan køre følgende kode for at returnere en liste over tilgængelige sprog:

EXEC sp_helplanguage;

Dette returnerer en liste over alle sprog.

Tilføj sprognavnet for at indsnævre det til et bestemt sprog. Sådan:

EXEC sp_helplanguage Spanish;


  1. Sådan genereres et script fra et diagram i MySQL Workbench

  2. Sådan opretter du en løbende periode i alt

  3. PL/SQL Online MCQ Quiz

  4. Sådan angives sorteringen i en forespørgsel i SQL Server (T-SQL)