SQL सर्वर में sys.sql_modules
, sys.system_sql_modules
, और sys.all_sql_modules
सिस्टम कैटलॉग दृश्य SQL सर्वर में SQL भाषा-परिभाषित मॉड्यूल के बारे में मेटाडेटा लौटाता है।
हालांकि, उनमें अंतर है।
यहां प्रत्येक दृश्य की आधिकारिक परिभाषा दी गई है:
sys.sql_modules
- प्रत्येक ऑब्जेक्ट के लिए एक पंक्ति देता है जो SQL सर्वर में SQL भाषा-परिभाषित मॉड्यूल है, जिसमें मूल रूप से संकलित स्केलर उपयोगकर्ता-परिभाषित फ़ंक्शन शामिल है। P, RF, V, TR, FN, IF, TF, और R प्रकार की वस्तुओं में एक संबद्ध SQL मॉड्यूल होता है। स्टैंड-अलोन डिफ़ॉल्ट, D प्रकार के ऑब्जेक्ट, इस दृश्य में SQL मॉड्यूल परिभाषा भी रखते हैं।
sys.system_sql_modules
- प्रति सिस्टम ऑब्जेक्ट में एक पंक्ति देता है जिसमें SQL भाषा-परिभाषित मॉड्यूल होता है। FN, IF, P, PC, TF, V प्रकार के सिस्टम ऑब्जेक्ट में एक संबद्ध SQL मॉड्यूल होता है।
sys.all_sql_modules
sys.sql_modules
. का संघ लौटाता है औरsys.system_sql_modules
।
दूसरे शब्दों में, अंतिम दृश्य पिछले दो दृश्यों के परिणामों को जोड़ता है (यह सिस्टम और . दोनों को लौटाता है उपयोगकर्ता-परिभाषित मॉड्यूल)।
उदाहरण
यहां एक उदाहरण दिया गया है जो इन दृश्यों द्वारा लौटाए गए परिणामों में अंतर दर्शाता है।
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;
परिणाम:
+---------------+ | sql_modules | |---------------| | 9 | +---------------+ (1 row affected) +----------------------+ | system_sql_modules | |----------------------| | 2020 | +----------------------+ (1 row affected) +-------------------+ | all_sql_modules | |-------------------| | 2029 | +-------------------+ (1 row affected)
इस मामले में, इस डेटाबेस में केवल 9 उपयोगकर्ता-परिभाषित मॉड्यूल हैं। बाकी सिस्टम मॉड्यूल से हैं।
यदि हम पहले दो प्रश्नों के परिणाम एक साथ जोड़ते हैं, तो हमें वही परिणाम मिलता है जो sys.all_sql_modules
:
SELECT (SELECT COUNT(*) FROM sys.sql_modules) + (SELECT COUNT(*) FROM sys.system_sql_modules) AS Result;
परिणाम:
+----------+ | Result | |----------| | 2029 | +----------+