只想在广泛研究后分享我的发现:主题是:
如何获取 COLUMN 级的 DIFFERENT 数据库对象之间的依赖关系?
上周,我正在研究该主题,并与与SQL小组合作的W家伙聊天。我现在确定使用dm_sql_referenced_entities
是唯一通过它的唯一方法,尽管您需要将对象名称输入此动态视图/表中。列出的所有其他解决方案都可以,但是它们只能在对象级别或列级别上使用,但是只能在同一数据库中使用,这是因为SYS表是特定于dbname的。 (其中一些示例在Click link。
这很方便,但是您需要将其循环到对象名称列表中。这正是右键单击SSMS / view依赖项对给定对象起作用的方式。如果需要,还有一种方法可以对链接的服务器执行此操作。
DECLARE @objName VARCHAR(100)= 'sp_MySP_NAME'
SELECT TOP 10
@objname objName,
(SELECT DB_NAME()) dbName,
'-->' [_],
referenced_database_name,
referenced_schema_name,
referenced_entity_name ObjName,
referenced_minor_name ColName,
referenced_class_desc,
is_select_all
FROM
yourDB.sys.dm_sql_referenced_entities('dbo.'+ @objName, +'object') a