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




sql-server sql-server-2008 (13)

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

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

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

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


SELECT name
FROM sys.columns
WHERE object_id = OBJECT_ID('TABLE_NAME')

// TABLE_NAME आपकी तालिका है


आप SQL सर्वर 2008 में sp_help का उपयोग कर सकते हैं।

sp_help <table_name>;

उपरोक्त आदेश के लिए कुंजीपटल शॉर्ट-कट select table name (इसे हाइलाइट करें) और ALT + F1 दबाएं।


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

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


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

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

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

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

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

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

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


बस इस कमांड को चलाएं

EXEC sp_columns 'आपका टेबल नाम'


आप संग्रहीत प्रक्रिया sp_columns का उपयोग कर सकते हैं जो किसी दिए गए तालिका के लिए सभी कॉलम से संबंधित जानकारी वापस कर देगा। अधिक जानकारी यहां http://msdn.microsoft.com/en-us/library/ms176077.aspx पाई जा सकती है

आप इसे SQL क्वेरी द्वारा भी कर सकते हैं। इस तरह की कुछ चीज मदद करनी चाहिए -

SELECT * FROM sys.columns WHERE object_id = OBJECT_ID('dbo.yourTableName') 

या एक बदलाव होगा:

SELECT   o.Name, c.Name
FROM     sys.columns c 
         JOIN sys.objects o ON o.object_id = c.object_id 
WHERE    o.type = 'U' 
ORDER BY o.Name, c.Name

यह तालिका के नाम से और फिर कॉलम नाम पर ऑर्डर किए गए सभी तालिकाओं के सभी कॉलम प्राप्त करता है।


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

SHOW COLUMNS FROM database_Name.table_name;

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

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

desc <TABLE NAME> ;

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

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 प्रकार प्राप्त करने के लिए प्रतिस्थापित किया जाता है







tsql