如何搜索从整个架构中的表创建的所有依赖视图



>我正在尝试查找从单个模式引用表创建的所有视图,因为我需要更改视图以指向正在主动推送数据的不同表。 例如,Schema.Table1 是冗余的,而 Schema.Table2 现在是需要使用的表,因此所有依赖于 Schema.Table1 的视图都需要更改以使用 Schema.Table2 中的数据。

我使用以下代码从架构中的单个表生成所有依赖视图,但是由于能够使用架构而不是表名进行搜索的表数量将是有益的:

SELECT 'SCHEMA.TABLE1' as [View Name],referencing_schema_name, referencing_entity_name, referencing_id, referencing_class_desc, is_caller_dependent  
FROM sys.dm_sql_referencing_entities ('SCHEMA.TABLE1', 'OBJECT')
UNION
SELECT 'SCHEMA.TABLE2' as [View Name],referencing_schema_name, referencing_entity_name, referencing_id, referencing_class_desc, is_caller_dependent  
FROM sys.dm_sql_referencing_entities ('SCHEMA.TABLE2', 'OBJECT')

从结果中,我需要看到架构名称、表名称和视图/存储过程名称。

您可以在下面尝试 -

select v.name
from INFORMATION_SCHEMA.VIEWS iv
join sys.views v on v.name = iv.Table_Name
where iv.Table_Catalog = 'Your database name'

最新更新