2013-05-15 5 views
16

टी-एसक्यूएल (एसक्यूएल सर्वर 2000) में। मैं डेटाबेस में सभी टेबल और कॉलम कैसे सूचीबद्ध कर सकता हूं? इसके अलावा, एक अलग क्वेरी में डेटा कॉलम और बाधाओं (NULLS, आदि) के साथ सभी कॉलम सूचीबद्ध करने का एक तरीका है। धन्यवाद।टी-एसक्यूएल सूची सारणी, कॉलम

+3

हा नीचे तरीकों की जोड़ी है कि आप सूचीबद्ध कर सकते हैं कर रहे हैं क्या आपने कुछ भी कोशिश की है? –

+2

'INFORMATION_SCHEMA' विचार या' sysobjects', 'syscolumns' आदि पर एक नज़र डालें –

उत्तर

43

कृपया information schema देखें।

select * 
from MyDatabaseName.information_schema.columns 
order by table_name, ordinal_position 
+0

धन्यवाद टिम मैं इसकी सराहना करता हूं। क्या टेबल में निर्दिष्ट डेटाबेस में जोड़ने का कोई तरीका है? मुझे लगता है कि कैटलॉग मास्टर है। – user1804387

+0

'MyDatabaseName का उपयोग करें;', फिर क्वेरी। [एमएसडीएन: डेटाबेस का चयन] [http://msdn.microsoft.com/en-us/library/ms180770.aspx)। वैकल्पिक रूप से, डीबी नाम को अपने 'से' खंड में सामान्य [4-भाग फैशन] (http://msdn.microsoft.com/en-us/library/ms177563.aspx) में जोड़ें (मैंने इसे उत्तर में जोड़ा है)। –

+0

मुझे बस यह मिला था। एक बार फिर धन्यवाद – user1804387

10

ऐसा करने के कई तरीके।

विकल्प 1::

SELECT db_name() as DATABASE_NAME, TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME, ORDINAL_POSITION, 
     COLUMN_DEFAULT, DATA_TYPE, CHARACTER_MAXIMUM_LENGTH, 
     NUMERIC_PRECISION, NUMERIC_PRECISION_RADIX, NUMERIC_SCALE, 
     DATETIME_PRECISION 
FROM INFORMATION_SCHEMA.COLUMNS 

विकल्प 2:

DECLARE @SQL VARCHAR(8000) 
SELECT @SQL = '' 
SELECT @SQL = @SQL + 'UNION 
SELECT ''' + name + ''' [DataBaseName], t.name [TableName], c.name [ColumnName], st.name [DataType] FROM ' + name + '..sysobjects t INNER JOIN ' + name + '..syscolumns c ON t.id = c.id INNER JOIN '+ name + '..systypes st on c.xtype = st.xtype where t.xtype = ''U''' 
FROM master..sysdatabases 
WHERE name IN ('databasename1', 'databaseName2') -- change here !! 
SELECT @SQL = RIGHT(@SQL, LEN(@SQL)-5) + ' ORDER BY 1, 2, 3' 
EXEC(@SQL) 

विकल्प 3:

select db_name() as database_name 
    ,table_name = sysobjects.name 
    ,column_name = syscolumns.name 
    ,datatype = systypes.name 
    ,length = syscolumns.length 
from sysobjects 
inner join syscolumns on sysobjects.id = syscolumns.id 
inner join systypes on syscolumns.xtype = systypes.xtype 
where sysobjects.xtype = 'U' 
order by sysobjects.name 
    ,syscolumns.colid 
संबंधित मुद्दे