Как я могу получить список всех таблиц с определенным именем столбца?
Я хочу показать все таблицы с указанным именем столбца
Ответ 1
Довольно просто на уровне базы данных
Use DatabaseName
Select * From INFORMATION_SCHEMA.COLUMNS Where column_name = 'ColName'
Ответ 2
select table_name
from information_schema.columns
where COLUMN_NAME = 'MyColumn'
Ответ 3
Вы можете использовать представления схемы информации:
SELECT DISTINCT TABLE_SCHEMA, TABLE_NAME
FROM Information_Schema.Columns
WHERE COLUMN_NAME = 'ID'
Здесь ссылка MSDN для представления "Столбцы": http://msdn.microsoft.com/en-us/library/ms188348.aspx
Ответ 4
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;
Ответ 5
Если вы пытаетесь запросить базу данных Oracle, вы можете использовать
select owner, table_name
from all_tab_columns
where column_name = 'ColName';
Ответ 6
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'
Это возвращает только таблицы и игнорирует представления для всех, кто заинтересован!
Ответ 7
- получить таблицы, содержащие выбранное имя столбца
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%'
его сработало...
Ответ 8
Вы можете найти то, что вы ищете в информационной схеме: Системные таблицы и представления SQL Server 2005 Мне кажется, что вам нужен SQL Server 2005 или выше для использования подхода, описанного в этой статье, но аналогичный метод можно использовать для более ранних версий.