You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL Server如何查询视图内部引用的其他视图列表?

SQL Server查询视图引用的其他视图的方法

INFORMATION_SCHEMA.VIEW_TABLE_USAGE 系统视图仅会返回视图依赖的物理表,不会返回依赖的其他视图对象,你可以用 sys.dm_sql_referenced_entities 系统动态管理函数实现需求,该函数可以返回指定对象的所有被引用依赖项,包含视图、函数、表等各类对象。

单视图查询示例

如果要查询单个指定视图引用的所有视图,可执行以下SQL,替换语句中的dbo.YourViewName为你要查询的视图全名即可:

SELECT 
    referenced_schema_name AS 被引用视图所属架构,
    referenced_entity_name AS 被引用视图名称
FROM 
    sys.dm_sql_referenced_entities ('dbo.YourViewName', 'OBJECT')
WHERE 
    referenced_class_desc = 'VIEW';

全库批量查询示例

如果需要查询当前数据库内所有视图各自引用的视图列表,可执行以下SQL:

SELECT 
    SCHEMA_NAME(v.schema_id) + '.' + v.name AS 源视图全名,
    re.referenced_schema_name + '.' + re.referenced_entity_name AS 被引用视图全名
FROM 
    sys.views v
CROSS APPLY 
    sys.dm_sql_referenced_entities (SCHEMA_NAME(v.schema_id) + '.' + v.name, 'OBJECT') re
WHERE 
    re.referenced_class_desc = 'VIEW'
ORDER BY 
    源视图全名;

注意事项

  • 上述方法仅适用于查询当前数据库内的依赖引用,如果视图存在跨库引用,可额外查询referenced_database_name字段确认关联的数据库
  • 加密的视图定义无法被解析,该方法不会返回加密视图的依赖信息
  • 如果需要同时查询视图依赖的表和视图,删除WHERE条件中的referenced_class_desc = 'VIEW'过滤规则即可

内容的提问来源于stack exchange,提问作者Bala

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 18:06:04