Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Thay đổi ngôn ngữ cho phiên hiện tại trong SQL Server

Bạn có thể biết rằng khi bạn kết nối với SQL Server, ngôn ngữ cho phiên đó thường được xác định bởi thông tin đăng nhập của bạn. Khi đăng nhập được tạo, nó sẽ được gán một ngôn ngữ mặc định.

Ngôn ngữ phiên xác định ngày giờ định dạng và thông báo hệ thống.

Mặc dù bạn chắc chắn có thể thay đổi ngôn ngữ mặc định cho đăng nhập, nhưng bạn cũng có thể ghi đè ngôn ngữ mặc định trong một phiên nếu cần. Bạn có thể chuyển đổi qua lại giữa các ngôn ngữ nếu được yêu cầu. Hoặc bạn thậm chí có thể mở hai kết nối riêng biệt và áp dụng một ngôn ngữ khác nhau cho mỗi kết nối đó.

Bài viết này giải thích cách thay đổi ngôn ngữ trong một phiên.

ĐẶT NGÔN NGỮ

SET LANGUAGE cho phép bạn thiết lập môi trường ngôn ngữ cho phiên hiện tại.

Đây là một ví dụ.

SET LANGUAGE British;

Điều đó đặt ngôn ngữ hiện tại thành tiếng Anh.

Tôi có thể xác minh điều này bằng truy vấn sau.

SELECT @@LANGUAGE;

Kết quả:

British

Định dạng ngày

Bạn nên biết rằng việc thay đổi ngôn ngữ trong một phiên cũng làm thay đổi định dạng ngày.

Đây là một truy vấn khác để minh họa điều này.

DBCC USEROPTIONS;

Kết quả:

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

Lưu ý rằng dateformatdmydatefirst1 . Điều này phù hợp với định dạng ngày của Anh.

Đây là những gì sẽ xảy ra nếu tôi thay đổi ngôn ngữ thành 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 |
 +-------------------------+----------------+  

Lưu ý rằng định dạng ngày được thay đổi hoàn toàn để tuân theo định dạng ngày của Hoa Kỳ.

Nếu bạn thấy vấn đề này có vấn đề, bạn luôn có thể thay đổi định dạng ngày tháng mà không cần thay đổi ngôn ngữ.

Đặt ngôn ngữ ở cấp độ truy vấn

Một số hàm chấp nhận đối số “culture” cho phép bạn chỉ định ngôn ngữ chỉ sử dụng cho truy vấn đó. Nói cách khác, bạn có thể thay đổi ngôn ngữ đặc biệt trong một truy vấn mà không cần thay đổi ngôn ngữ của phiên hiện tại của bạn.

Đây là một ví dụ.

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

Kết quả:

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

Nhận danh sách ngôn ngữ

Bạn có thể chạy truy vấn sau để nhận danh sách các ngôn ngữ có sẵn trong SQL Server.

EXEC sp_helplanguage;

Bạn cũng có thể thu hẹp nó thành một ngôn ngữ cụ thể bằng cách thêm nó bằng tên hoặc bí danh ngôn ngữ.

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. Không sử dụng sys.sql_dependencies trong SQL Server (nó không được dùng nữa)

  2. Giá trị ngẫu nhiên cho cột DATETIME

  3. Tạo tên bảng là các từ / từ khóa dành riêng trong MS SQL Server

  4. Quyền truy cập bị từ chối khi đính kèm cơ sở dữ liệu

  5. Giải pháp phân trang tốt nhất sử dụng SQL Server 2005?