Технически, кроме динамического SQL, SQL Server отслеживает зависимости. Однако до SQL Server 2008 его отслеживание не было надежным, поскольку оно обновляло зависимости, только если во время создания существовали все зависимые объекты. SQL Server 2008 значительно улучшил отслеживание зависимостей.
В SQL Server 2000 и 2005 вы можете запросить sys.sql_dependencies
, чтобы получить список зависимостей.
В SQL Server 2008 вы должны использовать sys.sql_expression_dependencies
Подробнее см. sys.sql_expression_dependencies .
РЕДАКТИРОВАТЬ Я думаю, что, возможно, неправильно истолковал ваш вопрос. Похоже, вы ищете список объектов types , от которых может зависеть объект типа TABLE. Прямо или косвенно это будет любой тип объекта в системе. Если нам нужны только «прямые» зависимости, то это зависит от того, что подразумевается под «прямыми». Например, имеет ли триггер, который ссылается на количество представлений, как прямую зависимость таблицы триггеров от представления?
РЕДАКТИРОВАТЬ Насколько я знаю, нет перечислимого списка всех возможных зависимостей между типами. Лучшее, чего вы можете достичь - это проанализировать типы, которые зависят от других типов в данной базе данных, используя что-то вроде:
Select DependentObj.Type, ReferencedObj.Type
from sys.sql_dependencies As D
Join sys.sysobjects As ReferencedObj
On ReferencedObj.id = D.referenced_major_id
Join sys.sysobjects As DependentObj
On DependentObj.id = D.object_id
Group By DependentObj.Type, ReferencedObj.Type