使用查询从 sql 视图中检索引用表的列表

Posted

技术标签:

【中文标题】使用查询从 sql 视图中检索引用表的列表【英文标题】:Retrieving list of referenced tables from a sql view using a query 【发布时间】:2012-09-11 14:47:55 【问题描述】:

有没有一种方法可以轻松检索视图下的表列表。 例如,在以下视图中:

CREATE VIEW ExampleView AS
SELECT p.personId, p.surname, p.forename, p.countryCode, c.countryName
FROM persons AS p
INNER JOIN countries AS c ON p.countryCode = c.countryCode

引用的表格是personscountries

有没有办法查询系统表,给出视图名称,以取回引用的表?

我使用的是 SQL Server 2008

【问题讨论】:

能否更具体一些,比如 SQL Server 的版本?此外,您应该在创建或引用对象时指定前缀以避免误报。 @AaronBertrand - 添加了 v 的 sql。前缀是什么意思?上面的代码已被删除,因此它非常适合 S.O - 这只是一个示例 我的意思是在创建视图和查询中包含dbo.。这是一种最佳做法,将使您的代码向前兼容。 是的,我知道,但是为了在 SO 上发布的简洁,它被省略了 【参考方案1】:
SELECT * FROM sys.dm_sql_referenced_entities(N'dbo.ExampleView', N'OBJECT');

【讨论】:

谢谢,稍微修改为:SELECT distinct referenced_entity_name FROM sys.dm_sql_referenced_entities(N'dbo.ExampleView', N'OBJECT');

以上是关于使用查询从 sql 视图中检索引用表的列表的主要内容,如果未能解决你的问题,请参考以下文章

从视图中的 SQL 子查询返回值列表

通过 JPA 标准查询从 SQL 视图获取列表时出错

在具有多个表的 sqlite 数据库中检索链接对象列表的查询是啥?

如何将数据表中的项添加到列表视图?

正在加载引用另一个表中相关数据的数据列表

如何使用psql中表中的列列表检索数据