Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Променете езика за текущата сесия в SQL Server

Може би знаете, че когато се свържете със SQL Server, езикът за тази сесия обикновено се определя от вашето влизане. Когато се създаде вход, той получава език по подразбиране.

Езикът на сесията определя дата и час формати и системни съобщения.

Въпреки че със сигурност можете да промените езика по подразбиране за вход, можете също да замените езика по подразбиране в рамките на сесия, ако е необходимо. Можете да превключвате напред и назад между езиците, ако е необходимо. Или дори можете да отворите две отделни връзки и да приложите различен език към всяка от тях.

Тази статия обяснява как да промените езика в рамките на сесия.

ЗАДАДЕТЕ ЕЗИК

SET LANGUAGE оператор ви позволява да зададете езиковата среда за текущата сесия.

Ето един пример.

SET LANGUAGE British;

Това определя текущия език на британски.

Мога да потвърдя това със следната заявка.

SELECT @@LANGUAGE;

Резултат:

British

Формати за дата

Трябва да знаете, че промяната на езика в рамките на сесия също променя формата на датата.

Ето още една заявка, която да илюстрира това.

DBCC USEROPTIONS;

Резултат:

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

Забележете, че dateformat е dmy и datefirst е 1 . Това е в съответствие с британския формат за дата.

Ето какво се случва, ако сменя езика на 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 |
 +-------------------------+----------------+  

Обърнете внимание, че форматът на датата е имплицитно променен, за да се придържа към форматирането на датата в САЩ.

Ако намирате това за проблематично, винаги можете да промените формата на датата, без да променяте езика.

Задаване на език на ниво заявка

Някои функции приемат аргумент „култура“, който ви позволява да посочите език, който да използвате само за тази заявка. С други думи, можете да промените езика ad hoc в рамките на заявка, без да е необходимо да променяте езика на текущата си сесия.

Ето един пример.

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];

Резултат:

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

Вземете списък с езици

Можете да изпълните следната заявка, за да получите списък с езици, налични в SQL Server.

EXEC sp_helplanguage;

Можете също да го стесните до конкретен език, като го добавите с името на езика или псевдонима.

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. EF 6 - Как правилно да изпълнявате паралелни заявки

  2. Как да получа скрипт за данни на SQL Server?

  3. SQL OVER() клаузата – кога и защо е полезна?

  4. SSIS пакетът не иска да извлича метаданни на временна таблица

  5. Как да създадете таблица от резултат от заявка за избор в SQL Server 2008