SQL Server:获取COLUMN级别的INTER db对象依赖性。这是唯一的方法(**列级别)

时间:2018-09-12 05:11:45

标签: sql-server tsql

只想在广泛研究后分享我的发现:主题是:

如何获取 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

0 个答案:

没有答案