Ba trong số các dạng xem danh mục hệ thống trong SQL Server bao gồm sys.views
, sys.system_views
và sys.all_views
.
Ba chế độ xem danh mục này đều cung cấp siêu dữ liệu về các chế độ xem trong cơ sở dữ liệu, nhưng có một sự khác biệt nhỏ giữa mỗi chế độ xem.
Đây là những gì mỗi người làm:
-
sys.views
- Trả về tất cả các chế độ xem do người dùng xác định.
-
sys.system_views
- Trả về tất cả các chế độ xem hệ thống được cung cấp cùng với SQL Server.
-
sys.all_views
- Hiển thị tất cả các chế độ xem hệ thống và 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ề cả hệ thống và chế độ xem 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 [User Defined] FROM sys.views; SELECT COUNT(*) AS [System] FROM sys.system_views; SELECT COUNT(*) AS [All Views] FROM sys.all_views;
Kết quả:
+----------------+ | User Defined | |----------------| | 3 | +----------------+ (1 row affected) +----------+ | System | |----------| | 494 | +----------+ (1 row affected) +-------------+ | All Views | |-------------| | 497 | +-------------+ (1 row affected)
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
:
USE Music; SELECT (SELECT COUNT(*) FROM sys.views) + (SELECT COUNT(*) FROM sys.system_views) AS Result;
Kết quả:
+----------+ | Result | |----------| | 497 | +----------+