sql >> Database >  >> RDS >> Sqlserver

3 manieren om de taal van de huidige sessie in SQL Server (T-SQL) te krijgen

Wanneer een nieuwe login wordt aangemaakt in SQL Server, wordt er een standaardtaal aan toegewezen. Deze taal wordt gebruikt voor systeemberichten en datum-/tijdnotaties. Deze taal wordt gebruikt als de standaardtaal wanneer die login verbinding maakt met SQL Server (maar het kan ook worden gewijzigd in een andere taal binnen de sessie).

Als je ooit de taal wilt weten die aan de huidige sessie is toegewezen, kun je een van de opties op deze pagina gebruiken.

Optie 1:De @@LANGUAGE-configuratiefunctie

De eerste optie om de taal van de huidige sessie op te halen, is door de @@LANGUAGE . te gebruiken scalaire functie. Gebruik het gewoon als onderdeel van een SELECT verklaring.

Zoals dit:

SELECT @@LANGUAGE;

Resultaat:

us_english

Optie 2:Het DBCC USEROPTIONS-commando

U kunt ook DBCC USEROPTIONS . uitvoeren om de huidige taal terug te geven, evenals andere opties voor de huidige verbinding.

Zoals dit:

DBCC USEROPTIONS;

Resultaat:

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

Optie 3:De  sys.dm_exec_requests-weergave

Deze optie is een beetje anders dan de vorige twee opties, omdat deze systeemweergave informatie retourneert op het individuele aanvraagniveau (het retourneert informatie over elke aanvraag die wordt uitgevoerd in SQL Server). Je kunt het beperken tot het huidige verzoek (dat is de SELECT statement waarmee u de weergave opvraagt).

Deze weergave retourneert een relatief groot aantal kolommen, dus als u alleen geïnteresseerd bent in de taal, kunt u alleen die kolom selecteren.

U kunt als volgt de taal teruggeven die in het huidige gebruikersproces wordt gebruikt:

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

Resultaat:

+------------+
| language   |
|------------|
| us_english |
+------------+

U kunt de taal voor de huidige sessie altijd wijzigen. Zie voor meer informatie over het instellen van de huidige taal in SQL Server (T-SQL).

Merk ook op dat sommige ingebouwde T-SQL-functies argumenten accepteren om de taal/cultuur te specificeren die op het specifieke queryniveau moet worden gebruikt. Bijvoorbeeld de PARSE() Met de functie kunt u een cultuur specificeren die moet worden gebruikt voor de query (of zelfs een deel van de query) die aangeeft hoe de gegeven tekenreeks is opgemaakt (zie bijvoorbeeld Hoe u een tekenreeks naar een datum/tijd in SQL Server converteert met PARSE( )).

De standaardtaal

Merk op dat een gebruiker ook een standaardtaal kan hebben die afwijkt van de huidige taal. Als ze de SET LANGUAGE . gebruiken statement om naar een andere taal te veranderen, blijft hun standaardtaal hun standaardtaal, ook al is de taal van de huidige sessie gewijzigd.

Zie De standaardtaal van een gebruiker vinden in SQL Server (T-SQL) om de standaardtaal voor een gebruiker/login/rol te vinden.


  1. Meerdere updates in MySQL

  2. Dubbele waarden elimineren op basis van slechts één kolom van de tabel

  3. Hoe kan ik kolommen in MySQL vertragen?

  4. Hoe haal ik alle rijen in mijn DB op?