使用查询从 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
引用的表格是persons和countries
有没有办法查询系统表,给出视图名称,以取回引用的表?
我使用的是 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 视图中检索引用表的列表的主要内容,如果未能解决你的问题,请参考以下文章