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

3 sposoby na uzyskanie języka bieżącej sesji w SQL Server (T-SQL)

Kiedy nowy login jest tworzony w SQL Server, jest mu przypisywany domyślny język. Ten język jest używany do komunikatów systemowych i formatów daty/godziny. Ten język będzie używany jako język domyślny za każdym razem, gdy ten login połączy się z SQL Server (ale można go również zmienić na inny język w ramach sesji).

Jeśli kiedykolwiek zechcesz dowiedzieć się, jaki język jest przypisany do bieżącej sesji, możesz uruchomić jedną z opcji na tej stronie.

Opcja 1:Funkcja konfiguracji @@LANGUAGE

Pierwszą opcją uzyskania języka bieżącej sesji jest użycie @@LANGUAGE funkcja skalarna. Po prostu użyj go jako części SELECT oświadczenie.

Tak:

SELECT @@LANGUAGE;

Wynik:

us_english

Opcja 2:Polecenie DBCC USEROPTIONS

Możesz także uruchomić DBCC USEROPTIONS aby zwrócić bieżący język, a także inne opcje bieżącego połączenia.

Tak:

DBCC USEROPTIONS;

Wynik:

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

Opcja 3:Widok  sys.dm_exec_requests

Ta opcja różni się nieco od poprzednich dwóch opcji, ponieważ ten widok systemowy zwraca informacje na poziomie pojedynczego żądania (zwraca informacje o każdym żądaniu wykonywanym w SQL Server). Możesz zawęzić go do bieżącego żądania (którym będzie SELECT oświadczenie, za pomocą którego wysyłasz zapytanie do widoku).

Ten widok zwraca stosunkowo dużą liczbę kolumn, więc jeśli interesuje Cię tylko język, możesz wybrać tylko tę kolumnę.

Oto jak zwrócić język używany w bieżącym procesie użytkownika:

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

Wynik:

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

Zawsze możesz zmienić język dla bieżącej sesji. Aby dowiedzieć się, jak to zrobić, zobacz Jak ustawić bieżący język w SQL Server (T-SQL).

Należy również zauważyć, że niektóre wbudowane funkcje T-SQL akceptują argumenty określające język/kulturę, która ma być używana na określonym poziomie zapytania. Na przykład PARSE() funkcja umożliwia określenie kultury do użycia w zapytaniu (lub nawet części zapytania), która określa sposób formatowania danego ciągu (na przykład, zobacz Jak przekonwertować ciąg na datę/godzinę w SQL Server za pomocą PARSE( )).

Język domyślny

Pamiętaj, że użytkownik może mieć również język domyślny, inny niż język bieżący. Jeśli używają SET LANGUAGE oświadczenie o zmianie na inny język, ich język domyślny pozostanie językiem domyślnym, nawet jeśli język bieżącej sesji uległ zmianie.

Aby znaleźć domyślny język użytkownika/logowania/roli, zobacz Jak znaleźć domyślny język użytkownika w SQL Server (T-SQL).


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak można tymczasowo wyłączyć ograniczenia klucza obcego za pomocą T-SQL?

  2. Utwórz profil poczty bazy danych (SSMS)

  3. Jak ustawić nazwę tabeli w dynamicznym zapytaniu SQL?

  4. Utwórz wieloetapowe zadanie agenta SQL Server (T-SQL)

  5. Zamiast wyzwalacza w SQL Server traci SCOPE_IDENTITY?