2009-09-27 23 views
28

में गणना की गई कॉलम की सूची प्राप्त करें क्या आप में से कोई भी SQL सर्वर डेटाबेस तालिका में गणना किए गए कॉलम की सूची कैसे प्राप्त करें?डेटाबेस तालिका (SQL सर्वर)

मैंने पाया sys.sp_help tablename इस जानकारी को वापस करता है, लेकिन केवल सेकेंड परिणाम में।

मैं यह जानने का प्रयास कर रहा हूं कि ऐसा करने का एक बेहतर तरीका है या नहीं। कुछ जो केवल एक परिणाम परिणाम देता है।

किसी भी मदद की बहुत सराहना की जाती है, क्योंकि यह बहुत बुरी तरह से प्रलेखित है।

धन्यवाद, Giammarco

उत्तर

48

ज़रूर - sys.columns प्रणाली कैटलॉग दृश्य की जाँच करें:

SELECT * FROM sys.columns 
WHERE is_computed = 1 

यह आपको इस डेटाबेस में सभी गणना कॉलम देता है।

SELECT * FROM sys.columns 
WHERE is_computed = 1 
AND object_id = OBJECT_ID('YourTableName') 

यह SQL सर्वर 2005 और अप पर काम करता है:

तुम सिर्फ एक एकल तालिका के लिए उन चाहते हैं, इस क्वेरी का उपयोग करें।

अद्यतन: यहां तक ​​कि एक sys.computed_columns प्रणाली कैटलॉग दृश्य जो भी गणना स्तंभ की परिभाषा (अभिव्यक्ति) शामिल नहीं है - केवल मामला है कि कुछ समय :-)

SELECT * FROM sys.computed_columns 
WHERE object_id = OBJECT_ID('YourTableName') 

की आवश्यकता हो सकती मार्क

7

में एसक्यूएल सर्वर 2000 के लिए वाक्य रचना है:

SELECT * FROM sys.columns 
WHERE is_computed = 1 

और थोड़ा और अधिक उपयोगी:

012,
SELECT 
    sysobjects.name AS TableName, 
    syscolumns.name AS ColumnName 
FROM syscolumns 
    INNER JOIN sysobjects 
    ON syscolumns.id = sysobjects.id 
    AND sysobjects.xtype = 'U' --User Tables 
WHERE syscolumns.iscomputed = 1 

नमूना उत्पादन:

TableName    ColumnName 
===================== ========== 
BrinksShipmentDetails Total 
AdjustmentDetails  Total 
SoftCountDropDetails Total 
CloserDetails   Total 
OpenerDetails   Total 
TransferDetails  Total 

(6 row(s) affected) 
+0

यह भी एमएस एसक्यूएल Azure में ठीक काम करता है। धन्यवाद। –

21

आप INFORMATION_SCHEMA दृश्यों का उपयोग करना चाहते हैं, तो कोशिश

SELECT 
COLUMNPROPERTY(OBJECT_ID(TABLE_SCHEMA+'.'+TABLE_NAME),COLUMN_NAME,'IsComputed') 
    AS IS_COMPUTED, 
* 
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE TABLE_NAME='<Insert Your Table Name Here>' 
संबंधित मुद्दे