Помимо динамического 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 для получения дополнительной информации.
EDIT Возможно, я неверно истолковал ваш вопрос. Похоже, вы ищете список объектов типов, от которых может зависеть объект типа TABLE. Прямо или косвенно, это будет любой тип объекта в системе. Если мы хотим только «прямых» зависимостей, то это зависит от того, что подразумевается под «прямым». Например, вызывает ли триггер, ссылающийся на представление, как прямая зависимость таблицы триггеров с представлением?
EDIT Насколько я знаю, нет перечисления всех возможных зависимостей между типами. Самое лучшее, что вы могли бы добиться того, чтобы проанализировать типы, которые зависят от других типов в данной базе данных, используя что-то вроде:
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
Меня интересуют зависимости между всем объектом в целом, а не зависимостями в одной определенной базе данных/сервере. Например, мне нужен список ВСЕХ ОБЪЕКТОВ, от которых зависит ТАБЛИЦА и т. Д. – Gjorgji