Trong SQL Server, bạn có thể đặt ngôn ngữ được sử dụng cho phiên hiện tại. Cài đặt ngôn ngữ hiện tại xác định ngôn ngữ được sử dụng trên tất cả các thông báo hệ thống, cũng như các định dạng ngày / giờ để sử dụng.
Bài viết này trình bày cách sử dụng T-SQL để đặt môi trường ngôn ngữ hiện tại trong SQL Server.
Cú pháp
Cú pháp để thiết lập ngôn ngữ hiện tại như sau:
SET LANGUAGE { [ N ] 'language' | @language_var }
Nơi [N]'language' | @language_var
là tên của ngôn ngữ được lưu trữ trong sys.syslanguages
chế độ xem tương thích hệ thống. Đối số này có thể là Unicode hoặc DBCS được chuyển đổi thành Unicode.
Để chỉ định một ngôn ngữ trong Unicode, hãy sử dụng N 'ngôn ngữ'. Nếu được chỉ định là một biến, thì biến đó phải là sysname loại dữ liệu ( sysname kiểu dữ liệu được sử dụng cho các cột bảng, biến và các tham số thủ tục được lưu trữ để lưu tên đối tượng).
Ví dụ 1 - Đặt ngôn ngữ
Dưới đây là một ví dụ về việc đặt ngôn ngữ cho phiên hiện tại thành tiếng Anh:
SET LANGUAGE British;
Kết quả:
Changed language setting to British.
Dưới đây là một ví dụ về cách đặt ngôn ngữ cho phiên hiện tại thành tiếng Đức:
SET LANGUAGE German;
Kết quả:
Die Spracheneinstellung wurde in Deutsch geändert.
Vì vậy, chúng ta có thể thấy rằng đầu ra đã ở ngôn ngữ mới được chỉ định.
Ví dụ 2 - Chạy một truy vấn
Thay đổi ngôn ngữ ảnh hưởng đến cách định dạng ngày tháng. Đây là một ví dụ cho thấy ý tôi muốn nói.
Đầu tiên, chúng tôi thay đổi ngôn ngữ thành British
, sau đó chạy truy vấn để chuyển đổi một chuỗi thành ngày kiểu dữ liệu:
SET LANGUAGE British; SELECT CONVERT(date, '09/01/2030') AS 'Convert';
Kết quả:
+------------+ | Convert | |------------| | 2030-01-09 | +------------+ Changed language setting to British.
Trong trường hợp này, ngày được dịch là ngày 9 tháng 1.
Sau đó, chúng tôi thay đổi ngôn ngữ thành us_English
và chạy cùng một truy vấn:
SET LANGUAGE us_english; SELECT CONVERT(date, '09/01/2030') AS 'Convert';
Kết quả:
+------------+ | Convert | |------------| | 2030-09-01 | +------------+ Changed language setting to us_english.
Vì vậy, trong trường hợp này, ngày được dịch là ngày 1 tháng 9, do cài đặt ngôn ngữ mới.
Đặt ngôn ngữ ở cấp độ truy vấn
Một số hàm T-SQL cho phép bạn chỉ định ngôn ngữ / văn hóa sẽ được sử dụng ở cấp độ truy vấn. Ví dụ:PARSE()
chấp nhận một đối số tùy chọn được sử dụng để xác định cách chuỗi được cung cấp được định dạng. Điều này cho phép bạn đặt ngôn ngữ / văn hóa chỉ được sử dụng trong truy vấn đó (và thậm chí các phần khác nhau của truy vấn) mà không cần thay đổi cài đặt ngôn ngữ cho phiên hiện tại.
Dưới đây là một ví dụ để chứng minh ý tôi muốn nói:
SELECT PARSE('01/06/2018' AS date USING 'en-US') AS 'en-US', PARSE('01/06/2018' AS date USING 'en-GB') AS 'en-GB';
Kết quả:
+------------+------------+ | en-US | en-GB | |------------+------------| | 2018-01-06 | 2018-06-01 | +------------+------------+
Nếu bạn không cung cấp đối số này, ngôn ngữ của phiên hiện tại sẽ được sử dụng.
Tìm ngôn ngữ hiện tại
Bạn có thể chạy câu lệnh sau để trả về ngôn ngữ hiện đang được sử dụng:
SELECT @@LANGUAGE;
Để có thêm tùy chọn, hãy xem 3 cách để tải ngôn ngữ của phiên hiện tại trong SQL Server (T-SQL).
Tìm các ngôn ngữ có sẵn
Bạn có thể chạy mã sau để trả về danh sách các ngôn ngữ có sẵn:
EXEC sp_helplanguage;
Thao tác này trả về danh sách tất cả các ngôn ngữ.
Để thu hẹp nó thành một ngôn ngữ cụ thể, hãy thêm tên ngôn ngữ. Như thế này:
EXEC sp_helplanguage Spanish;