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

Zmień język dla bieżącej sesji w SQL Server

Możesz wiedzieć, że kiedy łączysz się z SQL Server, język tej sesji jest zwykle określany przez Twój login. Po utworzeniu loginu przypisywany jest domyślny język.

Język sesji określa datę i godzinę formaty i komunikaty systemowe.

Chociaż z pewnością możesz zmienić domyślny język logowania, możesz również zastąpić domyślny język w sesji, jeśli zajdzie taka potrzeba. W razie potrzeby możesz przełączać się między językami. Możesz też otworzyć dwa oddzielne połączenia i zastosować do każdego z nich inny język.

Ten artykuł wyjaśnia, jak zmienić język w trakcie sesji.

USTAW JĘZYK

SET LANGUAGE instrukcja pozwala ustawić środowisko językowe dla bieżącej sesji.

Oto przykład.

SET LANGUAGE British;

To ustawia obecny język na brytyjski.

Mogę to zweryfikować za pomocą następującego zapytania.

SELECT @@LANGUAGE;

Wynik:

British

Formaty dat

Powinieneś wiedzieć, że zmiana języka w sesji zmienia również format daty.

Oto kolejne zapytanie, które to zilustruje.

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

Zwróć uwagę, że dateformat to dmy i datefirst to 1 . Jest to zgodne z brytyjskim formatem daty.

Oto, co się stanie, jeśli zmienię język na us_english .

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

Zwróć uwagę, że format daty został domyślnie zmieniony, aby był zgodny z formatowaniem daty w USA.

Jeśli okaże się to problematyczne, zawsze możesz zmienić format daty bez zmiany języka.

Ustaw język na poziomie zapytania

Niektóre funkcje akceptują argument „culture”, który pozwala określić język, który ma być używany tylko dla tego zapytania. Innymi słowy, możesz zmienić język ad hoc w zapytaniu, bez konieczności zmiany języka bieżącej sesji.

Oto przykład.

SET LANGUAGE us_english;
SELECT 
  FORMAT(GETDATE(), 'd') AS [My Default],
  FORMAT(GETDATE(), 'd', 'en-GB') AS [British],
  FORMAT(GETDATE(), 'd', 'de-DE') AS [German];

Wynik:

+--------------+------------+------------+
 | My Default   | British    | German     |
 |--------------+------------+------------|
 | 3/29/2020    | 29/03/2020 | 29.03.2020 |
 +--------------+------------+------------+  

Pobierz listę języków

Możesz uruchomić następujące zapytanie, aby uzyskać listę języków dostępnych w SQL Server.

EXEC sp_helplanguage;

Możesz również zawęzić go do określonego języka, dołączając do niego nazwę języka lub alias.

EXEC sp_helplanguage Italian;

  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 przekonwertować małe litery na wielkie w programie SQL Server — UPPER()

  2. Kiedy wydajność Distinct i Group By jest inna?

  3. Jak przeglądać dzienniki transakcji w SQL Server 2008

  4. Wybór procesora dla SQL Server 2014 – część 1

  5. Dlaczego nie mogę użyć aliasu w instrukcji DELETE?