我试图查找从单个模式创建的引用表的所有视图,因为我需要更改视图以指向另一个正被数据推送的表。例如。 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')
从结果中,我需要查看架构名称,表名称和视图/存储过程名称。
答案 0 :(得分:1)
您可以在下面尝试-
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'