Trong SQL Server, bạn có thể tìm ra ngôn ngữ mặc định cho một người dùng nhất định bằng cách truy vấn sys.server_principals
chế độ xem danh mục hệ thống.
Dạng xem này chứa một hàng cho mọi hiệu trưởng cấp máy chủ. Nó chứa thông tin như tên, loại, ngày tạo / sửa đổi, cơ sở dữ liệu mặc định, ngôn ngữ mặc định, v.v. Người chính là một thực thể có thể yêu cầu tài nguyên SQL Server.
Hiệu trưởng có thể là bất kỳ trường hợp nào sau đây:
Hiệu trưởng cấp Windows
- Đăng nhập miền Windows
- Đăng nhập cục bộ Windows
Chính cấp SQL Server
- Đăng nhập Máy chủ SQL
Hiệu trưởng cấp cơ sở dữ liệu
- Người dùng cơ sở dữ liệu
- Vai trò của Cơ sở dữ liệu
- Vai trò ứng dụng
Ví dụ về việc trả lại ngôn ngữ mặc định của ngôn ngữ chính
Để nhận ngôn ngữ mặc định cho một ngôn ngữ chính nhất định, bạn có thể truy vấn sys.server_principals
xem và sử dụng WHERE
mệnh đề cho tên chính mà bạn quan tâm.
Như thế này:
SELECT type_desc, default_database_name, default_language_name FROM master.sys.server_principals WHERE name = 'sa';
Kết quả:
+-------------+-------------------------+-------------------------+ | type_desc | default_database_name | default_language_name | |-------------+-------------------------+-------------------------| | SQL_LOGIN | master | us_english | +-------------+-------------------------+-------------------------+
Ví dụ này lấy ngôn ngữ mặc định cho sa
hiệu trưởng. Tên chính là duy nhất trong một máy chủ. Ví dụ này cũng trả về cơ sở dữ liệu mặc định cũng như kiểu chính. Trong trường hợp này, tài khoản chính là Đăng nhập máy chủ SQL.
Đây là một ví dụ khác sử dụng một người dùng khác:
SELECT type_desc, default_database_name, default_language_name FROM master.sys.server_principals WHERE name = 'Bach';
Kết quả:
+-------------+-------------------------+-------------------------+ | type_desc | default_database_name | default_language_name | |-------------+-------------------------+-------------------------| | SQL_LOGIN | Music | German | +-------------+-------------------------+-------------------------+
Trong trường hợp này, thông tin đăng nhập có cơ sở dữ liệu và ngôn ngữ mặc định khác.
Tất nhiên, bạn luôn có thể sử dụng dấu hoa thị để trả về tất cả các cột nếu được yêu cầu.
Lưu ý rằng bất kỳ thông tin đăng nhập nào cũng có thể thấy tên đăng nhập của chính họ, thông tin đăng nhập hệ thống và vai trò máy chủ cố định. Để xem các thông tin đăng nhập khác, yêu cầu ALTER ANY LOGIN
, hoặc một sự cho phép khi đăng nhập. Để xem các vai trò máy chủ do người dùng xác định, yêu cầu ALTER ANY SERVER ROLE
hoặc tư cách thành viên trong vai trò.
Ngôn ngữ mặc định so với Ngôn ngữ hiện tại
Trong hầu hết các trường hợp, ngôn ngữ hiện tại của người dùng cho phiên của họ sẽ là ngôn ngữ mặc định của họ. Nhưng điều này không nhất thiết luôn đúng như vậy vì người dùng có thể thay đổi ngôn ngữ hiện tại bằng cách sử dụng SET LANGUAGE
tuyên bố. Thao tác này sẽ thay đổi ngôn ngữ cho phiên hiện tại, nhưng ngôn ngữ mặc định của chúng sẽ vẫn ở bất kỳ ngôn ngữ nào.
Để tìm hiểu thêm, hãy xem Cách đặt ngôn ngữ hiện tại trong SQL Server (T-SQL) và 3 cách lấy ngôn ngữ của phiên hiện tại trong SQL Server (T-SQL).