Я использую SQL здесь: Find all tables containing column with specified nameНайти все таблицы, содержащие имя столбца; Фильтр Очищает
с большим успехом. Это позволяет мне находить все таблицы, содержащие определенный столбец. Моя проблема в том, что в базе данных, на которой я работаю, похоже, много пустых таблиц (возможно, около половины моих результатов - это пустые). Мне было интересно, если есть способ, чтобы изменить код в связи таким образом, что пустые строки/столбцы не presented.Below код из ссылки:
SELECT c.name AS 'ColumnName'
,t.name AS 'TableName'
FROM sys.columns c
JOIN sys.tables t ON c.object_id = t.object_id
WHERE c.name LIKE '%MyName%'
ORDER BY TableName
,ColumnName;
Спасибо,
Вы можете сделать это с помощью динамического SQL. Это вариант? – logixologist
Если честно, я не совсем уверен, что это. Я быстро просмотрел Google и сообщение здесь: http://stackoverflow.com/questions/4165020/what-is-dynamic-sql Говорит, что динамический SQL может повредить производительность, или это не всегда необходимо ... Я ' m готовы попробовать, но обычный SQL может быть лучше? –
@JohnnyBaggadoughnuts динамический sql на самом деле довольно хорош для такого рода вещей. Хотя я бы пошел с ответом Дэна, используя sys.partitions. –