SQL सर्वर में तीन सिस्टम कैटलॉग दृश्यों में शामिल हैं sys.columns
, sys.system_columns
, और sys.all_columns
।
ये तीन कैटलॉग व्यू प्रत्येक डेटाबेस में कॉलम के बारे में मेटाडेटा प्रदान करते हैं, लेकिन उनके बीच एक अंतर है।
यहाँ हर एक क्या करता है:
sys.columns
- उपयोगकर्ता द्वारा परिभाषित वस्तुओं से कॉलम लौटाता है। इसमें सिस्टम बेस टेबल से कॉलम शामिल हैं।
sys.system_columns
- सिस्टम ऑब्जेक्ट से कॉलम लौटाता है।
sys.all_columns
- सभी उपयोगकर्ता-परिभाषित और सिस्टम ऑब्जेक्ट से कॉलम लौटाता है।
दूसरे शब्दों में, अंतिम दृश्य पिछले दो दृश्यों के परिणामों को जोड़ता है।
निम्नलिखित ऑब्जेक्ट प्रकारों में कॉलम हो सकते हैं:
- टेबल-वैल्यू असेंबली फंक्शन (FT)
- इनलाइन तालिका-मूल्यवान SQL फ़ंक्शन (IF)
- आंतरिक टेबल (आईटी)
- सिस्टम टेबल (एस)
- तालिका-मूल्यवान SQL फ़ंक्शन (TF)
- उपयोगकर्ता तालिकाएं (यू)
- दृश्य (वी)
उदाहरण
यहां एक उदाहरण दिया गया है जो इन दृश्यों द्वारा लौटाए गए परिणामों में अंतर दर्शाता है।
USE Music; SELECT COUNT(*) AS columns FROM sys.columns; SELECT COUNT(*) AS system_columns FROM sys.system_columns; SELECT COUNT(*) AS all_columns FROM sys.all_columns;
परिणाम:
+-----------+ | columns | |-----------| | 1025 | +-----------+ (1 row affected) +------------------+ | system_columns | |------------------| | 8982 | +------------------+ (1 row affected) +---------------+ | all_columns | |---------------| | 10007 | +---------------+ (1 row affected)
यदि हम पहले दो प्रश्नों के परिणाम एक साथ जोड़ते हैं, तो हमें sys.all_columns
जैसा ही परिणाम मिलता है :
USE Music; SELECT (SELECT COUNT(*) FROM sys.columns) + (SELECT COUNT(*) FROM sys.system_columns) AS Result;
परिणाम:
+----------+ | Result | |----------| | 10007 | +----------+