SQL सर्वर में, कुछ सिस्टम कैटलॉग दृश्य हैं जो आपको डेटाबेस में परिकलित स्तंभों की सूची प्राप्त करने में सक्षम बनाते हैं।
इनमें से एक दृश्य को sys.computed_columns
. कहा जाता है . दूसरा है sys.columns
।
sys.computed_columns देखें
sys.computed_columns
सिस्टम कैटलॉग व्यू में डेटाबेस में प्रत्येक परिकलित कॉलम के लिए एक पंक्ति होती है। इसलिए, आप परिकलित स्तंभों की सूची प्राप्त करने के लिए एक साधारण क्वेरी चला सकते हैं।
SELECT OBJECT_NAME(object_id) AS [Parent], name AS [Computed Column], definition, is_persisted FROM sys.computed_columns;
परिणाम:
+----------+-------------------+--------------------------------------+----------------+ | Parent | Computed Column | definition | is_persisted | |----------+-------------------+--------------------------------------+----------------| | Person | FullName | (concat([FirstName],' ',[LastName])) | 0 | | Products | TotalValue | ([Quantity]*[Price]) | 1 | +----------+-------------------+--------------------------------------+----------------+
इस दृश्य के अधिकांश स्तंभ sys.columns
. से इनहेरिट किए गए हैं दृश्य। मैंने यहां केवल कुछ मुट्ठी भर लोगों को शामिल किया है।
sys.columns
. पर इस दृश्य के लाभों में से एक , यह है कि यह गणना किए गए कॉलम की परिभाषा देता है, जो स्थिति के आधार पर उपयोगी हो सकता है। इसमें is_persisted
. भी शामिल है फ्लैग, जो आपको बताता है कि परिकलित कॉलम कायम है या नहीं। यदि स्तंभ बना रहता है, तो स्तंभ का परिकलित मान तालिका में भौतिक रूप से संग्रहीत होता है। यदि नहीं, तो इसकी गणना उस समय की जाती है जब आप कॉलम को क्वेरी करते हैं।
sys.columns देखें
आप sys.columns
. के विरुद्ध एक क्वेरी भी चला सकते हैं गणना कॉलम वापस करने के लिए। यदि आप ऐसा करते हैं, तो आपको केवल गणना किए गए कॉलम शामिल करने के लिए परिणामों को फ़िल्टर करना होगा। आप इसे WHERE
. के साथ कर सकते हैं is_computed
. पर क्लॉज कॉलम।
उदाहरण:
SELECT OBJECT_NAME(object_id) as Parent, name AS [Computed Column] FROM sys.columns WHERE is_computed = 1;
परिणाम:
+----------+-------------------+ | Parent | Computed Column | |----------+-------------------| | Person | FullName | | Products | TotalValue | +----------+-------------------+
इस दृश्य में definition
शामिल नहीं है , is_persisted
, या uses_database_collation
कॉलम जो sys.computed_columns
शामिल हैं।