SQL सर्वर में, आप sys.columns
. का उपयोग कर सकते हैं किसी तालिका से गैर-गणना किए गए स्तंभों की सूची वापस करने के लिए सिस्टम कैटलॉग दृश्य।
"गैर-गणना" से मेरा मतलब केवल उन स्तंभों से है जो गणना किए गए स्तंभ नहीं हैं।
उदाहरण
प्रदर्शित करने के लिए यहां एक उदाहरण दिया गया है।
SELECT name AS [Column], TYPE_NAME(user_type_id) AS [Data Type], max_length, is_computed FROM sys.columns WHERE OBJECT_NAME(object_id) = 'Products' AND is_computed = 0;
परिणाम:
+-------------+-------------+--------------+---------------+ | Column | Data Type | max_length | is_computed | |-------------+-------------+--------------+---------------| | ProductID | int | 4 | 0 | | ProductName | varchar | 255 | 0 | | Quantity | smallint | 2 | 0 | | Price | money | 8 | 0 | +-------------+-------------+--------------+---------------+
sys.columns
view बहुत सारे कॉलम लौटाता है, इसलिए मैंने उन्हें यहाँ केवल एक मुट्ठी भर तक सीमित कर दिया है।
इस मामले में, तालिका का नाम Products
है . अगर मैं इसके द्वारा फ़िल्टर नहीं करता, तो मुझे सभी तालिकाओं (सिस्टम टेबल सहित), दृश्य, तालिका-मूल्यवान फ़ंक्शंस आदि से स्तंभों की एक बहुत बड़ी सूची मिल जाएगी।
मैंने is_computed
. शामिल किया है कॉलम यहाँ बस इतना है कि आप देख सकते हैं कि इन कॉलमों में 0
. है उस कॉलम में।
मुझे पता चला है कि इस तालिका में एक परिकलित कॉलम है जिसे TotalValue
. कहा जाता है . यहां फिर से क्वेरी है, लेकिन इस बार सभी कॉलम (गणना किए गए कॉलम सहित) लौटा रहे हैं।
SELECT name AS [Column], TYPE_NAME(user_type_id) AS [Data Type], max_length, is_computed FROM sys.columns WHERE OBJECT_NAME(object_id) = 'Products';
परिणाम:
+-------------+-------------+--------------+---------------+ | Column | Data Type | max_length | is_computed | |-------------+-------------+--------------+---------------| | ProductID | int | 4 | 0 | | ProductName | varchar | 255 | 0 | | Quantity | smallint | 2 | 0 | | Price | money | 8 | 0 | | TotalValue | money | 8 | 1 | +-------------+-------------+--------------+---------------+