sql >> Database >  >> RDS >> Sqlserver

Download de taal die momenteel in SQL Server wordt gebruikt

Er zijn verschillende manieren om de taal op te halen die momenteel in SQL Server wordt gebruikt.

De taal van de huidige sessie zal vaak de standaardtaal zijn voor het inloggen, maar dit is niet altijd het geval. Een gebruiker kan tijdens de sessie de huidige taal wijzigen.

Sommige ingebouwde functies van SQL Server accepteren ook een argument waarmee u een taal voor die specifieke query kunt specificeren.

In dit artikel wordt uitgelegd hoe u de momenteel gebruikte taal kunt teruggeven.

@@LANGUAGE

De @@LANGUAGE configuratiefunctie is speciaal gemaakt voor het retourneren van de naam van de taal die momenteel wordt gebruikt.

Hier is een gebruiksvoorbeeld.

SELECT @@LANGUAGE;

Resultaat:

us_english

Dit is de standaardtaal voor mijn login.

Hier is een voorbeeld van het veranderen van de taal tijdens mijn sessie en vervolgens @@LANGUAGE nogmaals.

SET LANGUAGE British;
SELECT @@LANGUAGE;

Resultaat:

British

DBCC GEBRUIKERSOPTIES

De DBCC USEROPTIONS stelt u ook in staat om de taal te krijgen die momenteel wordt gebruikt, samen met een paar andere configuratie-opties.

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

Ik heb die query direct na het vorige voorbeeld uitgevoerd en het geeft dus nog steeds Brits als taal terug.

Merk ook op dat de taal impliciet van invloed is op het dateformat en datefirst waarden. De standaardwaarden voor die waarden bij gebruik van us_english is mdy en 7 respectievelijk.

Als ik de taal terug verander naar us_English en voer DBCC USEROPTIONS . uit nogmaals, je zult zien dat de dateformat en datefirst instellingen worden teruggezet naar Amerikaans formaat.

SET LANGUAGE us_English; 
 ....... DBCC USEROPTIONS;                                                       
 Time: 0.740s
 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 |
 +-------------------------+----------------+ 

U kunt het datumformaat echter altijd apart instellen voor de taal als dat nodig is.

sys.dm_exec_requests

De sys.dm_exec_requests view stelt u in staat om de taal voor een specifiek gebruikersproces op te halen. In dit geval kunnen we @@SPID . gebruiken om het huidige gebruikersproces te specificeren.

SELECT r.language
FROM master.sys.dm_exec_requests r
WHERE r.session_id = @@SPID;

Resultaat:

us_english

  1. PostgreSQL configureren voor observeerbaarheid

  2. Hoe de groei van maand tot maand in PostgreSQL te berekenen?

  3. Is het mogelijk om door de gebruiker gedefinieerde aggregaten (clr) te gebruiken met vensterfuncties (over)?

  4. Hoe het verschil tussen twee tijdstempels in SQLite te berekenen