Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Uzyskaj język aktualnie używany w SQL Server

Istnieje kilka sposobów uzyskania języka używanego obecnie w SQL Server.

Język bieżącej sesji często będzie domyślnym językiem logowania, ale nie zawsze tak jest. Użytkownik może zmienić bieżący język podczas sesji.

Ponadto niektóre wbudowane funkcje SQL Server akceptują argument, który pozwala określić język dla tego konkretnego zapytania.

Z tego artykułu dowiesz się, jak zwrócić aktualnie używany język.

@@JĘZYK

@@LANGUAGE funkcja konfiguracji jest stworzona specjalnie do zwracania nazwy aktualnie używanego języka.

Oto przykład użycia.

SELECT @@LANGUAGE;

Wynik:

us_english

To jest domyślny język mojego logowania.

Oto przykład zmiany języka podczas mojej sesji, a następnie uruchomienia @@LANGUAGE ponownie.

SET LANGUAGE British;
SELECT @@LANGUAGE;

Wynik:

British

OPCJE UŻYTKOWNIKA DBCC

DBCC USEROPTIONS pozwala również uzyskać aktualnie używany język, a także kilka innych opcji konfiguracyjnych.

DBCC USEROPTIONS;

Wynik:

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

Uruchomiłem to zapytanie natychmiast po poprzednim przykładzie, więc nadal zwraca brytyjski jako język.

Zauważ również, że język niejawnie wpływa na dateformat i datefirst wartości. Domyślne wartości tych wartości przy użyciu us_english to mdy i 7 odpowiednio.

Jeśli zmienię język z powrotem na us_English i uruchom DBCC USEROPTIONS ponownie zobaczysz, że dateformat i datefirst ustawienia powracają do formatu amerykańskiego.

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

Jednak zawsze możesz ustawić format daty osobno dla języka, jeśli zajdzie taka potrzeba.

sys.dm_exec_requests

sys.dm_exec_requests Widok umożliwia pobranie języka dla określonego procesu użytkownika. W tym przypadku możemy użyć @@SPID aby określić bieżący proces użytkownika.

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

Wynik:

us_english

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wstawianie wierszy do tabeli z tylko jedną kolumną IDENTITY

  2. Znajdź wartości nieliczbowe w kolumnie w SQL Server

  3. Jak porównać wersje oprogramowania za pomocą SQL Server?

  4. Twórz wartości DISTINCT w STRING_AGG

  5. Rozwiązywanie problemów z długimi zapytaniami w MS SQL Server