Я хочу показать все таблицы с указанным именем столбца - PullRequest
47 голосов
/ 16 ноября 2010

Как я могу получить список всех таблиц, которые имеют определенное имя столбца?

Ответы [ 8 ]

89 голосов
/ 16 ноября 2010

Довольно просто на уровне базы данных

Use DatabaseName
Select * From INFORMATION_SCHEMA.COLUMNS Where column_name = 'ColName'
16 голосов
/ 16 ноября 2010
select table_name
from information_schema.columns
where COLUMN_NAME = 'MyColumn'
9 голосов
/ 16 ноября 2010

Вы можете использовать представления информационной схемы:

SELECT DISTINCT TABLE_SCHEMA, TABLE_NAME
FROM Information_Schema.Columns
WHERE COLUMN_NAME = 'ID'

Вот справочник MSDN для представления "Столбцы": http://msdn.microsoft.com/en-us/library/ms188348.aspx

7 голосов
/ 04 мая 2013

Если вы пытаетесь запросить базу данных Oracle, вы можете использовать

select owner, table_name 
from all_tab_columns
where column_name = 'ColName';
6 голосов
/ 25 октября 2013
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 '%YOUR_COLUMN%' 
ORDER BY schema_name, table_name;

Углубленная статья SQL Authority

4 голосов
/ 05 июня 2015
SELECT      T.TABLE_NAME, C.COLUMN_NAME
FROM        INFORMATION_SCHEMA.COLUMNS C
            INNER JOIN INFORMATION_SCHEMA.TABLES T ON T.TABLE_NAME = C.TABLE_NAME
WHERE       TABLE_TYPE = 'BASE TABLE'
            AND COLUMN_NAME = 'ColName'

Возвращает только таблицы и игнорирует представления для всех, кому это интересно!

2 голосов
/ 13 января 2016

- получить таблицы, содержащие выбранное имя столбца

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 '%batchno%'

его обработано ...

1 голос
/ 16 ноября 2010

Вы можете найти то, что вы ищете в информационной схеме: Системные таблицы и представления SQL Server 2005 Я думаю, что вам нужен SQL Server 2005 или выше, чтобы использовать подход, описанный в этой статье, но аналогичный метод может быть использован для более ранних версий.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...