2013-08-13 19 views
16

Czy ich inny sposób lub sql zapytania znaleźć nazwy tabel bazy danych z określonej kolumny niż pokazane poniżejznaleźć nazwę tabeli sql z danej kolumnie

SELECT TABLE_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME = 'NameID' 
+3

Dlaczego trzeba w inny sposób? –

+1

W ten sposób, jeśli chcesz używać standardów SQL. Jeśli tego nie zrobisz, musisz dodać znacznik do konkretnego produktu RDBMS (np. Oracle, MySQL, itp.) –

+0

może to się różnić w zależności od używanego RDBMS. – Randy

Odpowiedz

17

W SQL Server, można wyszukać sys.columns.

Coś jak:

SELECT 
    t.name 
FROM 
    sys.columns c 
     inner join 
    sys.tables t 
     on 
      c.object_id = t.object_id 
WHERE 
    c.name = 'NameID' 

Możesz chcieć dodatkowe wyszukiwanie aby rozwiązać nazwę schematu, jeśli masz tabele w wielu schematów.

+0

jest to idealne rozwiązanie, ponieważ nadaje tylko tabelę z określoną kolumną – Rohaan

3

można uruchomić tej kwerendy

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 '%Column%' -- write the column you search here 
ORDER BY schema_name, table_name; 
Powiązane problemy