2014-10-10 7 views
43

Come posso ottenere tutti i nomi delle tabelle in cui esiste il nome della colonna data? Voglio i nomi con "Mi piace" in SQL Server. Ad esempio: -Trova tutti i nomi delle tabelle con il nome della colonna?

select TableNames where columnname like '%MyColumn%' 

Please help me

+1

** non duplicare ** perché questa domanda richiede 'LIKE', quindi è una richiesta più ampia. La risposta selezionata fornisce anche il nome della colonna per indirizzare la variabilità dei nomi delle colonne che LIKE restituirà. – gordon

risposta

83

Si prega di provare la query di seguito. Usa sys.columns per ottenere i dettagli: -

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

e per vedere il nome dello schema aggiungere SCHEMA_NAME (t.schema_id) –

8

Prova in questo modo: per SQL Server 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%' 

O

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

O qualcosa di simile:

SELECT name 
FROM sys.tables 
WHERE OBJECT_ID IN (SELECT id 
       FROM syscolumns 
       WHERE name like '%COlName%') 
11

Si potrebbe fare questo:

SELECT t.name AS table_name, 
SCHEMA_NAME(schema_id) AS schema_name, 
c.name AS column_name 
FROM sys.tables AS t 
INNER JOIN sys.columns c ON t.OBJECT_ID = c.OBJECT_ID 
WHERE c.name LIKE '%MyColumn%' 
ORDER BY schema_name, table_name; 

Riferimento:

Problemi correlati