Найти имена таблиц с именем столбца?
Как я могу получить все имена таблиц, где указано имя столбца? Мне нужны имена с "Like" в sql-сервере. Например: -
select TableNames where columnname like '%MyColumn%'
Пожалуйста, помогите мне
Ответы
Ответ 1
Попробуйте выполнить приведенный ниже запрос. Используйте 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%';
Ответ 2
Вы можете сделать это:
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;
Ссылка:
Ответ 3
Попробуйте вот так:
Для 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%'
Или
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%' )