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

SQL सर्वर में कंप्यूटेड कॉलम की सूची लौटाएं

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 शामिल हैं।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL सर्वर नेमिंग कन्वेंशन पर एक भावनात्मक तार्किक नज़र

  2. कैसे जांचें कि इसे बनाने से पहले कोई संग्रहीत कार्यविधि मौजूद है या नहीं?

  3. SQL सर्वर डेटाबेस में सभी चेक बाधाओं को कैसे अक्षम करें - SQL सर्वर / TSQL ट्यूटोरियल भाग 87

  4. SQL सर्वर लॉग शिपिंग और डिजास्टर रिकवरी इंस्टाल और कॉन्फ़िगरेशन -2

  5. jdbctemplate के माध्यम से एसक्यूएल डालने से पहचान