【问题标题】:Retrieving list of referenced tables from a sql view using a query使用查询从 sql 视图中检索引用表的列表
【发布时间】: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 上发布的简洁,它被省略了

标签: sql-server view sql-view


【解决方案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');
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-12-19
  • 1970-01-01
  • 1970-01-01
  • 2017-05-19
  • 1970-01-01
  • 2020-12-15
  • 1970-01-01
相关资源
最近更新 更多