SQL सर्वर में किसी तालिका से कॉलम नाम कैसे प्राप्त कर सकते हैं?




sql-server sql-server-2008 (11)

- यह रूपांतरण के लिए एक बड़े डेटाबेस को दस्तावेज करने के लिए उपयोग किया जाने वाला एक और भिन्नता है (संपादित करने के लिए - स्थिर कॉलम)

SELECT o.Name                   as Table_Name
     , c.Name                   as Field_Name
     , t.Name                   as Data_Type
     , t.length                 as Length_Size
     , t.prec                   as Precision_
FROM syscolumns c 
     INNER JOIN sysobjects o ON o.id = c.id
     LEFT JOIN  systypes t on t.xtype = c.xtype  
WHERE o.type = 'U' 
ORDER BY o.Name, c.Name

- बाएं जुड़ने में, v.type को varchxt प्रकार से varchxt प्रकार प्राप्त करने के लिए प्रतिस्थापित किया जाता है

मैं एक तालिका के सभी कॉलम के नाम से पूछताछ करना चाहता हूं। मैंने पाया कि यह कैसे करें:

लेकिन मुझे यह जानने की ज़रूरत है: माइक्रोसॉफ्ट एसक्यूएल सर्वर (2008 में मेरे मामले में) में यह कैसे किया जा सकता है?


आप MySQL में INFORMATION_SCHEMA का उपयोग किये बिना कॉलम नाम और सभी विवरण प्राप्त करने के लिए यह क्वेरी लिख सकते हैं:

SHOW COLUMNS FROM database_Name.table_name;

आप इस क्वेरी का उपयोग कर सकते हैं

SELECT *
FROM INFORMATION_SCHEMA.COLUMNS
WHERE COLUMN_NAME like N'%[ColumnName]%' and TABLE_NAME = N'[TableName]'

आप इसे आजमा सकते हैं। यह सभी कॉलम नामों को उनके संबंधित डेटा प्रकारों के साथ देता है।

desc <TABLE NAME> ;

इस SO प्रश्न में निम्न दृष्टिकोण गुम है:

-- List down all columns of table 'Logging'
select * from sys.all_columns where object_id = OBJECT_ID('Logging')

इस क्वेरी का उपयोग करके आपको जवाब मिल गया है:

select Column_name 
from Information_schema.columns 
where Table_name like 'table name'

यह जांच करेगा कि दी गई table बेस टेबल है या नहीं

SELECT 
    T.TABLE_NAME AS 'TABLE NAME',
    C.COLUMN_NAME AS 'COLUMN NAME'
FROM INFORMATION_SCHEMA.TABLES T
INNER JOIN INFORMATION_SCHEMA.COLUMNS C ON T.TABLE_NAME=C.TABLE_NAME
    WHERE   T.TABLE_TYPE='BASE TABLE'
            AND T.TABLE_NAME LIKE 'Your Table Name'

सूचना स्कीमा विचारों से पूछताछ करके आप इस जानकारी को और अधिक प्राप्त कर सकते हैं

यह नमूना क्वेरी:

SELECT *
FROM Northwind.INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = N'Customers'

इन सभी डीबी वस्तुओं पर बनाया जा सकता है:


SELECT c.Name 
FROM sys.columns c
JOIN sys.objects o ON o.object_id = c.object_id
WHERE o.object_id = OBJECT_ID('TABLE_NAME')
ORDER BY c.Name

SELECT column_name, data_type, character_maximum_length, table_name,ordinal_position, is_nullable 
FROM information_schema.COLUMNS WHERE table_name LIKE 'YOUR_TABLE_NAME'
ORDER BY ordinal_position

select *
from INFORMATION_SCHEMA.COLUMNS
where TABLE_NAME='tableName'

यह sys.columns से प्राप्त करने से बेहतर है क्योंकि यह सीधे DATA_TYPE दिखाता है।







tsql