sql >> Database >  >> RDS >> Sqlserver

Wijzig de taal voor de huidige sessie in SQL Server

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;

  1. Aangepast inlogscherm maken in Oracle Forms 10g

  2. Null-waarden weergeven bij het uitvoeren van query's in psql (PostgreSQL)

  3. PostgreSQL - FOUT:kolomdatum kan niet worden gecast om datum te typen

  4. Mogelijke manieren om het probleem met corruptie van SQL Server-metagegevens op te lossen