2014-10-10 7 views
43

मैं सभी तालिका नाम कैसे प्राप्त कर सकता हूं जहां दिया गया कॉलम नाम मौजूद है? मैं एसक्यूएल सर्वर में "पसंद" के साथ नाम चाहता हूँ। उदाहरण के लिए: -कॉलम नाम के साथ सभी टेबल नाम खोजें?

select TableNames where columnname like '%MyColumn%' 

कृपया मेरी मदद करो

+1

** डुप्लिकेट नहीं ** क्योंकि यह प्रश्न 'LIKE' के लिए कॉल करता है, इसलिए एक व्यापक अनुरोध है। चयनित उत्तर कॉलम नाम प्रदान करता है साथ ही कॉलम नामों की विविधता को संबोधित करने के लिए जो वापस लौटाएगा। – gordon

उत्तर

83

नीचे दिए गए क्वेरी से प्रयास करें। विवरण प्राप्त करने के लिए sys.columns का उपयोग करें: -

SELECT c.name AS ColName, t.name AS TableName 
FROM sys.columns c 
    JOIN sys.tables t ON c.object_id = t.object_id 
WHERE c.name LIKE '%MyCol%'; 
+1

और स्कीमा नाम देखने के लिए SCHEMA_NAME (t.schema_id) जोड़ें –

8

इस तरह का प्रयास करें: एसक्यूएल सर्वर के लिए 2008+

SELECT c.name AS ColName, t.name AS TableName 
FROM sys.columns c 
    JOIN sys.tables t ON c.object_id = t.object_id 
WHERE c.name LIKE '%MyColumnaName%' 

या

SELECT COLUMN_NAME, TABLE_NAME 
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE COLUMN_NAME LIKE '%MyName%' 

या कुछ इस तरह:

SELECT name 
FROM sys.tables 
WHERE OBJECT_ID IN (SELECT id 
       FROM syscolumns 
       WHERE name like '%COlName%') 
संबंधित मुद्दे