sql >> Database >  >> RDS >> Sqlserver

Hoe de huidige taal in SQL Server (T-SQL) in te stellen

In SQL Server kunt u de taal instellen die voor de huidige sessie moet worden gebruikt. De huidige taalinstelling bepaalt de taal die voor alle systeemberichten wordt gebruikt, evenals de te gebruiken datum-/tijdnotaties.

Dit artikel laat zien hoe u T-SQL gebruikt om de huidige taalomgeving in SQL Server in te stellen.

Syntaxis

De syntaxis voor het instellen van de huidige taal gaat als volgt:

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

Waar [N]'language' | @language_var is de naam van de taal zoals opgeslagen in de sys.syslanguages systeemcompatibiliteit bekijken. Dit argument kan Unicode of DBCS zijn, geconverteerd naar Unicode.

Gebruik N . om een ​​taal in Unicode op te geven 'taal'. Indien gespecificeerd als een variabele, moet de variabele sysname . zijn gegevenstype (de sysname gegevenstype wordt gebruikt voor tabelkolommen, variabelen en opgeslagen procedureparameters die objectnamen opslaan).

Voorbeeld 1 – De taal instellen

Hier is een voorbeeld van het instellen van de taal voor de huidige sessie op Brits:

SET LANGUAGE British;

Resultaat:

Changed language setting to British.

Hier is een voorbeeld van het instellen van de taal voor de huidige sessie op Duits:

SET LANGUAGE German;

Resultaat:

Die Spracheneinstellung wurde in Deutsch geändert.

We kunnen dus zien dat de uitvoer al in de nieuw gespecificeerde taal is.

Voorbeeld 2 – Een zoekopdracht uitvoeren

Het wijzigen van de taal heeft invloed op de opmaak van datums. Hier is een voorbeeld om te laten zien wat ik bedoel.

Eerst veranderen we de taal in British en voer vervolgens een query uit om een ​​tekenreeks om te zetten in een datum gegevenstype:

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

Resultaat:

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

In dit geval wordt de datum vertaald als 9 januari.

Dan veranderen we de taal in us_English en voer dezelfde zoekopdracht uit:

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

Resultaat:

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

Dus in dit geval is de datum vertaald als 1 september vanwege de nieuwe taalinstellingen.

De taal instellen op het zoekniveau

Bij sommige T-SQL-functies kunt u een taal/cultuur specificeren die op queryniveau moet worden gebruikt. Bijvoorbeeld PARSE() accepteert een optioneel argument dat wordt gebruikt om te bepalen hoe de opgegeven tekenreeks is opgemaakt. Hierdoor kunt u de taal/cultuur instellen die alleen binnen die zoekopdracht (en zelfs verschillende delen van de zoekopdracht) moet worden gebruikt zonder dat u de taalinstellingen voor de huidige sessie hoeft te wijzigen.

Hier is een voorbeeld om te laten zien wat ik bedoel:

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

Resultaat:

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

Als u dit argument niet opgeeft, wordt de taal van de huidige sessie gebruikt.

Vind de huidige taal

U kunt de volgende instructie uitvoeren om de taal terug te geven die momenteel wordt gebruikt:

SELECT @@LANGUAGE;

Zie 3 manieren om de taal van de huidige sessie in SQL Server (T-SQL) te krijgen voor meer opties.

Vind de beschikbare talen

U kunt de volgende code uitvoeren om een ​​lijst met beschikbare talen te retourneren:

EXEC sp_helplanguage;

Dit geeft een lijst met alle talen terug.

Voeg de taalnaam toe om het te beperken tot een bepaalde taal. Zoals dit:

EXEC sp_helplanguage Spanish;


  1. Bewaar byte[] in een SQL Server-database vanuit C#

  2. Regex gebruiken in WHERE in Postgres

  3. Hoe willekeurige parameters naar Oracle-trigger te sturen?

  4. sla strings van willekeurige lengte op in Postgresql