Mỗi lần bạn tạo thông tin đăng nhập mới trong SQL Server, bạn có quyền lựa chọn chỉ định ngôn ngữ mặc định cho thông tin đăng nhập đó. Nếu bạn không làm điều này, thông tin đăng nhập sẽ sử dụng ngôn ngữ mặc định như được chỉ định trong tùy chọn cấu hình máy chủ ngôn ngữ mặc định.
Bài viết này trình bày cách đặt tùy chọn cấu hình máy chủ ngôn ngữ mặc định trong SQL Server, sử dụng T-SQL.
Trước tiên, hãy kiểm tra Cài đặt ngôn ngữ mặc định của máy chủ
Trước khi tiếp tục và thay đổi bất kỳ điều gì, chúng ta nên kiểm tra xem cài đặt hiện tại là gì.
sp_configure
quy trình được lưu trữ cho phép bạn xem hoặc thay đổi cài đặt cấu hình chung cho máy chủ hiện tại.
Để trả về tất cả các tùy chọn cấu hình, bạn có thể thực hiện thủ tục đã lưu trữ này mà không cần chuyển bất kỳ đối số nào. Như thế này:
EXEC sp_configure;
Tuy nhiên, điều đó trả về một tập hợp kết quả khá lớn.
Vì chúng tôi chỉ quan tâm đến cài đặt ngôn ngữ mặc định, chúng tôi có thể chạy mã sau:
EXEC sp_configure @configname='default language';
Và trên môi trường thử nghiệm của tôi, nó trả về như sau:
+------------------+-----------+-----------+----------------+-------------+ | name | minimum | maximum | config_value | run_value | |------------------+-----------+-----------+----------------+-------------| | default language | 0 | 9999 | 0 | 0 | +------------------+-----------+-----------+----------------+-------------+
Các giá trị chính mà chúng tôi quan tâm là config_value
và run_value
. Trong trường hợp này, cả hai giá trị đều là 0
, là ID ngôn ngữ cho us_english
.
Chúng tôi có thể thay đổi những điều đó bằng cách sử dụng mã sau:
EXEC sp_configure 'default language', 5; RECONFIGURE;
Kết quả:
Configuration option 'default language' changed from 0 to 5. Run the RECONFIGURE statement to install.
Lưu ý rằng các giá trị cho config_value
và run_value
không tự động tương đương. Sau khi cập nhật cài đặt cấu hình bằng cách sử dụng sp_configure
, bạn phải cập nhật run_value
bằng cách sử dụng RECONFIGURE
hoặc RECONFIGURE WITH OVERRIDE
. Vì chúng tôi đã làm điều đó trong ví dụ này, chúng tôi sẵn sàng tiếp tục.
Vì vậy, khi chúng tôi kiểm tra lại cài đặt, chúng tôi có thể thấy các giá trị mới:
EXEC sp_configure @configname='default language';
Kết quả:
+------------------+-----------+-----------+----------------+-------------+ | name | minimum | maximum | config_value | run_value | |------------------+-----------+-----------+----------------+-------------| | default language | 0 | 9999 | 5 | 5 | +------------------+-----------+-----------+----------------+-------------+
Trong trường hợp này, chúng tôi đã thay đổi các giá trị thành 5
, là ID ngôn ngữ cho Español
(Tiếng Tây Ban Nha).
Bạn cũng có thể truy vấn sys.configurations
xem để trả về các giá trị của các tùy chọn cấu hình máy chủ nếu bạn muốn.
Cách tìm ID ngôn ngữ
Nếu bạn không biết ID ngôn ngữ của ngôn ngữ bạn cần thay đổi, bạn có thể thực thi sp_helplanguage
thủ tục được lưu trữ. Bạn có thể chạy nó mà không cần đối số, trong trường hợp đó, tất cả các ngôn ngữ sẽ được trả về hoặc bạn có thể cung cấp tên hoặc bí danh ngôn ngữ để chỉ ngôn ngữ đó được trả về.
Đây là một ví dụ:
EXEC sp_helplanguage Spanish;
Đây là kết quả tôi nhận được khi chạy nó trong mssql-cli:
-[ RECORD 1 ]------------------------- langid | 5 dateformat | dmy datefirst | 1 upgrade | 0 name | Español alias | Spanish months | Enero,Febrero,Marzo,Abril,Mayo,Junio,Julio,Agosto,Septiembre,Octub shortmonths | Ene,Feb,Mar,Abr,May,Jun,Jul,Ago,Sep,Oct,Nov,Dic days | Lunes,Martes,Miércoles,Jueves,Viernes,Sábado,Domingo lcid | 3082 msglangid | 3082
Và chúng ta có thể thấy rằng ID ngôn ngữ cho tiếng Tây Ban Nha là 5
. Vì vậy, đó là giá trị chúng tôi cung cấp khi thực thi sp_configure
để thay đổi ngôn ngữ mặc định sang tiếng Tây Ban Nha.
Vì vậy, bây giờ khi chúng tôi tạo thông tin đăng nhập mới, ngôn ngữ mặc định của nó sẽ là tiếng Tây Ban Nha (trừ khi chúng tôi cung cấp rõ ràng ngôn ngữ mặc định khi tạo thông tin đăng nhập).
Tạo thông tin đăng nhập mới - Không chỉ định ngôn ngữ mặc định
Vì vậy, hãy tạo thông tin đăng nhập mới mà không cần chỉ định ngôn ngữ mặc định:
CREATE LOGIN Julio WITH PASSWORD = 't35Tin9345!'
Và bây giờ hãy kiểm tra ngôn ngữ mặc định cho thông tin đăng nhập đó:
SELECT default_language_name FROM master.sys.server_principals WHERE name = 'Julio';
Chúng tôi nhận được kết quả sau:
+-------------------------+ | default_language_name | |-------------------------| | Español | +-------------------------+
Vì chúng tôi không chỉ định ngôn ngữ mặc định cho thông tin đăng nhập này, nên nó sử dụng ngôn ngữ mặc định như được định cấu hình ở cấp máy chủ.
Tạo thông tin đăng nhập mới - Với ngôn ngữ mặc định
Nhưng nếu chúng tôi chỉ định ngôn ngữ mặc định khi chúng tôi tạo thông tin đăng nhập:
CREATE LOGIN Einstein WITH PASSWORD = 't35Tin9345!', DEFAULT_LANGUAGE = German;
Và sau đó truy vấn sys.server_principals
một lần nữa:
SELECT default_language_name FROM master.sys.server_principals WHERE name = 'Einstein';
Chúng tôi nhận được kết quả sau:
+-------------------------+ | default_language_name | |-------------------------| | German | +-------------------------+
Vì vậy, cấu hình máy chủ chỉ được sử dụng khi bạn không chỉ định rõ ràng ngôn ngữ mặc định cho đăng nhập cá nhân.
Lưu ý rằng người dùng có thể thay đổi ngôn ngữ được sử dụng trong phiên của họ. Chỉ vì họ có ngôn ngữ mặc định, điều đó không có nghĩa là họ gặp khó khăn với ngôn ngữ đó. Để biết thêm thông tin, hãy xem 3 cách lấy ngôn ngữ của phiên hiện tại trong SQL Server (T-SQL) và cách đặt ngôn ngữ hiện tại trong SQL Server (T-SQL).