जब आप SQL सर्वर में एक कंप्यूटेड कॉलम बनाते हैं, तो आपके पास इसे "परसिस्टेंट" के रूप में फ़्लैग करने का विकल्प होता है। एक स्थायी गणना कॉलम वह है जो तालिका में भौतिक रूप से संग्रहीत होता है। यदि आप यह निर्दिष्ट नहीं करते हैं कि यह कायम है, तो हर बार जब आप इसके विरुद्ध कोई क्वेरी चलाएंगे तो स्तंभ के मान की गणना की जाएगी।
आप sys.computed_columns
. को क्वेरी कर सकते हैं सिस्टम कैटलॉग दृश्य यह पता लगाने के लिए कि क्या एक परिकलित कॉलम को स्थायी के रूप में चिह्नित किया गया है।
उदाहरण 1 - एक परिकलित कॉलम की जांच करना
यहां एक उदाहरण दिया गया है जिसे मैंने अपने परीक्षण वातावरण में चलाया था। इस मामले में, मैं TotalValue
. नामक एक परिकलित कॉलम की जांच कर रहा हूं ।
SELECT is_persisted FROM sys.computed_columns WHERE name = 'TotalValue';
परिणाम:
+----------------+ | is_persisted | |----------------| | 1 | +----------------+
इस मामले में कॉलम है कायम रहा।
यदि आपके पास एक ही नाम के कई परिकलित कॉलम हैं, तो आप WHERE
में टेबल का नाम भी जोड़ सकते हैं। खंड:
SELECT is_persisted FROM sys.computed_columns WHERE name = 'TotalValue' AND OBJECT_NAME(object_id) = 'Products';
उदाहरण 2 - सभी परिकलित कॉलम लौटाएं
इस उदाहरण में मैं सभी परिकलित स्तंभों को उनके is_persisted
. के साथ लौटाता हूं मान।
SELECT OBJECT_NAME(object_id) AS [Table], name AS [Computed Column], is_persisted FROM sys.computed_columns;
परिणाम:
+----------+-------------------+----------------+ | Table | Computed Column | is_persisted | |----------+-------------------+----------------| | Person | FullName | 0 | | Products | TotalValue | 1 | +----------+-------------------+----------------+
उदाहरण 3 - स्कीमा शामिल करें
इस उदाहरण में मैं sys.objects
. के साथ जुड़ता हूं परिणामों में स्कीमा शामिल करने के लिए देखें।
SELECT SCHEMA_NAME(o.schema_id) AS [Schema], OBJECT_NAME(cc.object_id) AS [Table], cc.name AS [Computed Column], cc.is_persisted FROM sys.computed_columns cc INNER JOIN sys.objects o ON o.object_id = cc.object_id;
परिणाम:
+----------+----------+-------------------+----------------+ | Schema | Table | Computed Column | is_persisted | |----------+----------+-------------------+----------------| | dbo | Person | FullName | 0 | | dbo | Products | TotalValue | 1 | +----------+----------+-------------------+----------------+