Как получить список зависимых таблиц MSSQL с помощью запроса?
Добрый день. Собираю несколько баз воедино, борюсь с проблемой дубля ключей. Пытаюсь автоматизировать процесс. Накидал програмку, которая изменяет ключи и вносит изменения в зависимые таблицы. На данный момент приходится вручную вносить название каждой таблицы и т.д., что не есть удобно.
Хотелось бы ввести запрос с названием таблицы и получить список таблиц, которые на нее ссылаются, что то типа "View Dependencies" в Management Studio, реально ли это? Гуглеж завел меня в тупик, знаний не хватает.
Vapaamies, перехватить что-то более-менее сложное, к примеру подборки зависимостей и потом разобраться с этим - задачка по сложности круче чем прочитать подробности про sysobjects на msdn.
d-stream, попробовал перехватить View Dependencies к одной из таблиц. Получившийся набор запросов можно распечатать на рулоне шпалеры, для меня не так уж и просто будет разобраться как его подогнать под мою задачу.
select name
from sys.tables
where object_id in
( select parent_object_id
from sys.foreign_key_columns
where referenced_object_id = 2105058535
and referenced_column_id = 1);
Предварительно получив
select object_id from sys.tables where name = 'MyTable'
и
select column_id from sys.columns where name = 'MyTable' and object_id = my_id
protsey, осталось собрать эти три запроса в один, обернуть в функцию, параметризировав имя таблицы и получить функцию fnGetTableReferences(nvarchar(max) tablename)
приjoinив которую к селекту из systables можно получить все таблицы со всеми связями.