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

Skift sproget for den aktuelle session i SQL Server

Du ved måske, at når du opretter forbindelse til SQL Server, bestemmes sproget for den session normalt af dit login. Når et login oprettes, tildeles det et standardsprog.

Sessionssproget bestemmer datotidspunktet formater og systemmeddelelser.

Selvom du helt sikkert kan ændre standardsproget for et login, kan du også tilsidesætte standardsproget i en session, hvis du har brug for det. Du kan skifte frem og tilbage mellem sprog, hvis det er nødvendigt. Eller du kan endda åbne to separate forbindelser og anvende et andet sprog på hver af dem.

Denne artikel forklarer, hvordan du ændrer sproget i en session.

INDSTIL SPROG

SET LANGUAGE sætning giver dig mulighed for at indstille sprogmiljøet for den aktuelle session.

Her er et eksempel.

SET LANGUAGE British;

Det sætter det nuværende sprog til britisk.

Jeg kan bekræfte dette med følgende forespørgsel.

SELECT @@LANGUAGE;

Resultat:

British

Datoformater

Du skal vide, at ændring af sproget i en session også ændrer datoformatet.

Her er en anden forespørgsel til at illustrere dette.

DBCC USEROPTIONS;

Resultat:

+-------------------------+----------------+
 | 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 |
 +-------------------------+----------------+ 

Bemærk, at dateformat er dmy og datefirst er 1 . Dette er i tråd med det britiske datoformat.

Her er, hvad der sker, hvis jeg ændrer sproget til 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 |
 +-------------------------+----------------+  

Bemærk, at datoformatet implicit ændres for at overholde amerikansk datoformatering.

Hvis du finder dette problematisk, kan du altid ændre datoformatet uden at ændre sproget.

Indstil sprog på forespørgselsniveau

Nogle funktioner accepterer et "kultur"-argument, der tillader dig at angive et sprog, der kun skal bruges til den forespørgsel. Med andre ord kan du ændre sproget ad hoc i en forespørgsel uden at skulle ændre sproget for din aktuelle session.

Her er et eksempel.

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

Resultat:

+--------------+------------+------------+
 | My Default   | British    | German     |
 |--------------+------------+------------|
 | 3/29/2020    | 29/03/2020 | 29.03.2020 |
 +--------------+------------+------------+  

Få en liste over sprog

Du kan køre følgende forespørgsel for at få en liste over tilgængelige sprog i SQL Server.

EXEC sp_helplanguage;

Du kan også indsnævre det til et specifikt sprog ved at tilføje det med sprogets navn eller alias.

EXEC sp_helplanguage Italian;

  1. Ingen resultater returneret af forespørgselsfejlen i PostgreSQL

  2. Værtspakke på Chokolade

  3. SYSTIMESTAMP Funktion i Oracle

  4. Ændrer du SQL Server-sortering til at skelne mellem store og små bogstaver fra at skelne mellem store og små bogstaver?