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 प्रकार प्राप्त करने के लिए प्रतिस्थापित किया जाता है
मैं एक तालिका के सभी कॉलम के नाम से पूछताछ करना चाहता हूं। मैंने पाया कि यह कैसे करें:
- Oracle
- MySQL
- PostgreSQL
लेकिन मुझे यह जानने की ज़रूरत है: माइक्रोसॉफ्ट एसक्यूएल सर्वर (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'
इन सभी डीबी वस्तुओं पर बनाया जा सकता है:
- CHECK_CONSTRAINTS
- COLUMN_DOMAIN_USAGE
- COLUMN_PRIVILEGES
- COLUMNS
- CONSTRAINT_COLUMN_USAGE
- CONSTRAINT_TABLE_USAGE
- DOMAIN_CONSTRAINTS
- DOMAINS
- KEY_COLUMN_USAGE
- PARAMETERS
- REFERENTIAL_CONSTRAINTS
- ROUTINES
- ROUTINE_COLUMNS
- SCHEMATA
- TABLE_CONSTRAINTS
- TABLE_PRIVILEGES
- TABLES
- VIEW_COLUMN_USAGE
- VIEW_TABLE_USAGE
- VIEWS
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
दिखाता है।