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

Sự khác biệt giữa sys.parameters, sys.system_parameters và sys.all_parameters trong SQL Server

Nếu bạn đang tìm kiếm một chế độ xem danh mục để trả về thông tin tham số trong SQL Server, bạn có một lựa chọn. Đặc biệt, bạn có thể lấy thông tin tham số từ sys.parameters , sys.system_parameterssys.all_parameters .

Tuy nhiên, bạn có thể sẽ chỉ muốn sử dụng một trong các chế độ xem này, vì có sự khác biệt giữa chúng.

Đây là định nghĩa chính thức của từng chế độ xem:

sys.parameters
Chứa một hàng cho mỗi tham số của một đối tượng chấp nhận tham số. Nếu đối tượng là một hàm vô hướng, thì cũng có một hàng duy nhất mô tả giá trị trả về. Hàng đó sẽ có giá trị tham số =0.
sys.system_parameters
Chứa một hàng cho mỗi đối tượng hệ thống có các tham số.
sys.all_parameters
Hiển thị sự kết hợp của tất cả các tham số thuộc về đối tượng hệ thống hoặc do người dùng xác định.

Nói cách khác, chế độ xem cuối cùng kết hợp các kết quả của hai chế độ xem trước đó (nó trả về thông tin tham số từ cả hệ thống đối tượng do người dùng xác định).

Ví dụ

Dưới đây là một ví dụ chứng minh sự khác biệt về kết quả do các chế độ xem này trả về.

USE Music;

SELECT COUNT(*) AS parameters
FROM sys.parameters;

SELECT COUNT(*) AS system_parameters
FROM sys.system_parameters;

SELECT COUNT(*) AS all_parameters
FROM sys.all_parameters;

Kết quả:

+--------------+
| parameters   |
|--------------|
| 7            |
+--------------+
(1 row affected)
+---------------------+
| system_parameters   |
|---------------------|
| 7442                |
+---------------------+
(1 row affected)
+------------------+
| all_parameters   |
|------------------|
| 7449             |
+------------------+
(1 row affected)

Trong trường hợp này, chỉ có 7 tham số cho các đối tượng do người dùng định nghĩa trong cơ sở dữ liệu này. Phần còn lại là từ các đối tượng hệ thống.

Nếu chúng ta cộng kết quả của hai truy vấn đầu tiên với nhau, chúng ta sẽ nhận được cùng một kết quả là sys.all_views :

SELECT 
(SELECT COUNT(*) FROM sys.parameters) +
(SELECT COUNT(*) FROM sys.system_parameters)
AS Result;

Kết quả:

+----------+
| Result   |
|----------|
| 7449     |
+----------+

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách thực hiện truy vấn chuyển qua DELETE trong SQL Server

  2. Trả lại số tuần ISO từ một ngày trong SQL Server (T-SQL)

  3. Cách so sánh datetime với chỉ ngày trong SQL Server

  4. Tôi có thể sử dụng Kiểu dữ liệu ngày trong máy chủ sql như thế nào?

  5. Làm cách nào để liệt kê tất cả các bảng trong tất cả các cơ sở dữ liệu trong SQL Server trong một tập hợp kết quả?