Определить таблицу, на которую ссылаются в представлении в SQL Server - PullRequest
8 голосов
/ 29 ноября 2011

Как я могу узнать таблицы, используемые в представлении в SQL Server? Есть ли сценарий или инструмент, который может дать мне знать таблицы, используемые в представлении, а также может перечислить поля?

Надеюсь, это прояснит вопрос. Дайте мне знать, если нет.

Пожалуйста, руководство! Спасибо!

Ответы [ 3 ]

7 голосов
/ 29 ноября 2011
select
  cols.*
from
  sys.sql_expression_dependencies objs
  outer apply sys.dm_sql_referenced_entities ( OBJECT_SCHEMA_NAME(objs.referencing_id) + N'.' + object_name(objs.referencing_id), N'OBJECT' ) as cols
where
  objs.referencing_id = object_id('view_name_here')

Ссылка: sys.dm_sql_referenced_entities (Transact-SQL) .

1 голос
/ 10 марта 2012

Простейшим способом просмотра содержимого (большинства) объектов будет:

sp_helptext blah

Где вы подставляете бла с именем объекта.Это даст фактический код, который создал объект.в этом случае, например, это может привести к:

CREATE VIEW blah
AS
  select blah.column1,blah.column2 from blah_table
0 голосов
/ 15 мая 2014

Вы можете использовать DISTINCT, чтобы получить только таблицы.

  Select   DISTINCT cols.referenced_entity_name from  
   sys.sql_expression_dependencies objs   outer apply
   sys.dm_sql_referenced_entities (
   OBJECT_SCHEMA_NAME(objs.referencing_id) + N'.' +
   object_name(objs.referencing_id), N'OBJECT' ) as cols where  
   objs.referencing_id = object_id('viewname')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...