Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

कैसे जांचें कि SQL सर्वर में एक कंप्यूटेड कॉलम "जारी" है या नहीं?

जब आप 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              |
+----------+----------+-------------------+----------------+

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. निकाय ढांचे का उपयोग करके प्राथमिक कुंजी मान अपडेट करें

  2. 4 डेटा प्रकार SQL सर्वर में बहिष्कृत किए जाने के लिए

  3. SQL सर्वर (T-SQL) में HTML तालिका के रूप में ईमेल क्वेरी परिणाम

  4. SQL सर्वर में वर्तमान डेटाबेस के लिए सभी फ़ाइल समूह लौटाएँ

  5. SQL सर्वर में sp_help_jobschedule का उपयोग करना