sql >> Databasteknik >  >> RDS >> Sqlserver

3 sätt att få språket för den aktuella sessionen i SQL Server (T-SQL)

När en ny inloggning skapas i SQL Server tilldelas den ett standardspråk. Detta språk används för systemmeddelanden och datum/tidsformat. Detta språk kommer att användas som standardspråk när inloggningen ansluter till SQL Server (men det kan också ändras till ett annat språk under sessionen).

Om du någon gång vill ta reda på vilket språk som är tilldelat den aktuella sessionen kan du köra ett av alternativen på den här sidan.

Alternativ 1:@@LANGUAGE-konfigurationsfunktionen

Det första alternativet för att få språket för den aktuella sessionen är att använda @@LANGUAGE skalär funktion. Använd den helt enkelt som en del av en SELECT uttalande.

Så här:

SELECT @@LANGUAGE;

Resultat:

us_english

Alternativ 2:Kommandot DBCC USEROPTIONS

Du kan också köra DBCC USEROPTIONS för att returnera det aktuella språket, samt andra alternativ för den aktuella anslutningen.

Så här:

DBCC USEROPTIONS;

Resultat:

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

Alternativ 3:  sys.dm_exec_requests-vyn

Det här alternativet skiljer sig lite från de två föregående alternativen genom att den här systemvyn returnerar information på individuell begärannivå (den returnerar information om varje begäran som körs i SQL Server). Du kan begränsa den till den aktuella begäran (som kommer att vara SELECT). uttalande med vilken du frågar vyn).

Den här vyn returnerar ett relativt stort antal kolumner, så om du bara är intresserad av språket kan du välja just den kolumnen.

Så här returnerar du språket som används i den aktuella användarprocessen:

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

Resultat:

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

Du kan alltid ändra språket för den aktuella sessionen. För att ta reda på hur, se Hur man ställer in det aktuella språket i SQL Server (T-SQL).

Observera också att vissa inbyggda T-SQL-funktioner accepterar argument för att specificera språket/kulturen som ska användas på den specifika frågenivån. Till exempel PARSE() funktionen låter dig ange en kultur som ska användas för frågan (eller till och med en del av frågan) som anger hur den givna strängen formateras (till exempel se Hur man konverterar en sträng till ett datum/tid i SQL Server med PARSE( )).

Standardspråket

Observera att en användare också kan ha ett standardspråk som skiljer sig från det aktuella språket. Om de använder SET LANGUAGE för att ändra till ett annat språk, kommer deras standardspråk att förbli standardspråket, även om språket för den aktuella sessionen har ändrats.

För att hitta standardspråket för en användare/inloggning/roll, se Hur man hittar en användares standardspråk i SQL Server (T-SQL).


  1. Postgres 9.4 jsonb-array som tabell

  2. Hur man installerar phpMyAdmin

  3. SQL Server Stored Procedures från Oracle®

  4. Rotera/pivotera tabell med aggregering i Oracle