U weet wellicht dat wanneer u verbinding maakt met SQL Server, de taal voor die sessie meestal wordt bepaald door uw login. Wanneer een login wordt aangemaakt, wordt er een standaardtaal aan toegewezen.
De sessietaal bepaalt de datetime formaten en systeemberichten.
Hoewel u de standaardtaal voor inloggen zeker kunt wijzigen, kunt u indien nodig ook de standaardtaal binnen een sessie overschrijven. Indien nodig kunt u heen en weer schakelen tussen talen. Of u kunt zelfs twee afzonderlijke verbindingen openen en op elk ervan een andere taal toepassen.
In dit artikel wordt uitgelegd hoe u de taal binnen een sessie kunt wijzigen.
TAAL INSTELLEN
De SET LANGUAGE
statement stelt u in staat de taalomgeving voor de huidige sessie in te stellen.
Hier is een voorbeeld.
SET LANGUAGE British;
Dat stelt de huidige taal in op Brits.
Ik kan dit verifiëren met de volgende vraag.
SELECT @@LANGUAGE;
Resultaat:
British
Datumnotaties
Je moet weten dat het veranderen van de taal binnen een sessie ook het datumformaat verandert.
Hier is nog een vraag om dit te illustreren.
DBCC USEROPTIONS;
Resultaat:
+-------------------------+----------------+ | 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 | +-------------------------+----------------+
Merk op dat dateformat
is dmy
en datefirst
is 1
. Dit is in lijn met het Britse datumformaat.
Dit is wat er gebeurt als ik de taal verander in us_english
.
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 | +-------------------------+----------------+
Merk op dat de datumnotatie impliciet is gewijzigd om te voldoen aan de Amerikaanse datumnotatie.
Als u dit problematisch vindt, kunt u het datumformaat altijd wijzigen zonder de taal te wijzigen.
Taal instellen op zoekniveau
Sommige functies accepteren een 'cultuur'-argument waarmee u een taal kunt specificeren die alleen voor die query moet worden gebruikt. Met andere woorden, u kunt de taal ad-hoc wijzigen binnen een zoekopdracht, zonder dat u de taal van uw huidige sessie hoeft te wijzigen.
Hier is een voorbeeld.
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];
Resultaat:
+--------------+------------+------------+ | My Default | British | German | |--------------+------------+------------| | 3/29/2020 | 29/03/2020 | 29.03.2020 | +--------------+------------+------------+
Een lijst met talen ophalen
U kunt de volgende query uitvoeren om een lijst met beschikbare talen in SQL Server te krijgen.
EXEC sp_helplanguage;
Je kunt het ook verfijnen tot een specifieke taal door er de taalnaam of alias aan toe te voegen.
EXEC sp_helplanguage Italian;