2010-04-07 17 views
8

मैं तालिका की संरचना प्राप्त करने के लिए एक चयन निष्पादित करता हूं। मैं इसके नाम की तरह कॉलम के बारे में जानकारी प्राप्त करना चाहते हैं या यह शून्य है या अगर यह प्राथमिक कुंजी .. है मैं इसएसक्यूएल सर्वर: कॉलम का डिफ़ॉल्ट मान

....sys.columns c... 
c.precision, 
c.scale, 
c.is_nullable as isnullable, 
c.default_object_id as columndefault, 
c.is_computed as iscomputed, 

की तरह कुछ है, लेकिन डिफ़ॉल्ट मान के लिए मैं 454,545,454 तरह id..something मिलता है लेकिन मैं मान "xxxx" प्राप्त करना चाहता हूं। उस आईडी को मूल्य में बदलने के लिए खोज करने के लिए तालिका क्या है या फ़ंक्शन क्या है। धन्यवाद

उत्तर

10

आप ऐसा कर सकते हैं (एक का चयन करें सभी जानकारी उपलब्ध * सिर्फ इसलिए कि आप देख सकते किया):

SELECT * 
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE.... 

यह resultset में एक "COLUMN_DEFAULT" कॉलम शामिल है।

7

उपयोग

Select * From INFORMATION_SCHEMA.COLUMNS 

एक स्तंभ COLUMN_DEFAULT

1

'बिल' कहा जाता है एक उदाहरण तालिका

select 
COLUMN_DEFAULT   --default 
,IS_NULLABLE    -- is nullable 
,NUMERIC_PRECISION  --number of digits (binary or decimal depending on radix) 
,NUMERIC_PRECISION_RADIX --decimal places 
,NUMERIC_SCALE   --number of digits to right of decimal point 
,COLUMNPROPERTY(OBJECT_ID('bills'),COLUMN_NAME,'Iscomputed') AS ISCOMPUTED --is computed 
from INFORMATION_SCHEMA.columns where TABLE_name='bills' 

select * from INFORMATION_SCHEMA.TABLE_CONSTRAINTS where TABLE_NAME='bills' and CONSTRAINT_TYPE='PRIMARY KEY' 
+0

यह मूल रूप से कहा कि NUMERIC_RADIX दशमलव की संख्या है स्थानों। यह गलत है। रेडिक्स उस संख्या प्रणाली का आधार है जिसमें मान संग्रहीत किया जाता है (2 या 10)। NUMERIC_PRECISION संग्रहित अंकों की कुल संख्या (दशमलव या बाइनरी, रेडिक्स के आधार पर) है, और NUMERIC_SCALE दशमलव बिंदु के दाईं ओर अंकों की संख्या है –

संबंधित मुद्दे