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;