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;