Trong SQL Server, sys.sql_modules
, sys.system_sql_modules
và sys.all_sql_modules
chế độ xem danh mục hệ thống trả về siêu dữ liệu về các mô-đun do ngôn ngữ SQL xác định trong SQL Server.
Tuy nhiên, 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.sql_modules
- Trả về một hàng cho mỗi đối tượng là mô-đun do ngôn ngữ SQL xác định trong SQL Server, bao gồm cả hàm vô hướng được biên dịch nguyên bản do người dùng xác định. Các đối tượng kiểu P, RF, V, TR, FN, IF, TF và R có một mô-đun SQL được liên kết. Mặc định độc lập, đối tượng kiểu D, cũng có định nghĩa mô-đun SQL trong dạng xem này.
-
sys.system_sql_modules
- Trả về một hàng cho mỗi đối tượng hệ thống có chứa mô-đun do ngôn ngữ SQL xác định. Các đối tượng hệ thống kiểu FN, IF, P, PC, TF, V có một mô-đun SQL liên kết.
-
sys.all_sql_modules
- Trả về kết hợp của
sys.sql_modules
vàsys.system_sql_modules
.
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à mô-đun 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 sql_modules FROM sys.sql_modules; SELECT COUNT(*) AS system_sql_modules FROM sys.system_sql_modules; SELECT COUNT(*) AS all_sql_modules FROM sys.all_sql_modules;
Kết quả:
+---------------+ | sql_modules | |---------------| | 9 | +---------------+ (1 row affected) +----------------------+ | system_sql_modules | |----------------------| | 2020 | +----------------------+ (1 row affected) +-------------------+ | all_sql_modules | |-------------------| | 2029 | +-------------------+ (1 row affected)
Trong trường hợp này, chỉ có 9 mô-đun 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 mô-đun hệ thống.
Nếu chúng tôi cộng kết quả của hai truy vấn đầu tiên với nhau, chúng tôi sẽ nhận được cùng một kết quả là sys.all_sql_modules
:
SELECT (SELECT COUNT(*) FROM sys.sql_modules) + (SELECT COUNT(*) FROM sys.system_sql_modules) AS Result;
Kết quả:
+----------+ | Result | |----------| | 2029 | +----------+