Подтвердить что ты не робот

Как найти, какие представления используют определенную таблицу в SQL Server (2008)?

Мне нужно добавить несколько столбцов в таблицу, и мне также нужно добавить эти столбцы ко всем представлениям, использующим эту таблицу.

Можно ли получить список всех представлений в базе данных, которые используют определенную таблицу?

4b9b3361

Ответ 1

Это должно сделать это:

SELECT * 
FROM   INFORMATION_SCHEMA.VIEWS 
WHERE  VIEW_DEFINITION like '%[YourTableName]%'

Ответ 2

Чтобы найти зависимые таблицы, вы можете использовать представление каталога sys.sql_expression_dependencies:

SELECT 
referencing_object_name = o.name, 
referencing_object_type_desc = o.type_desc, 
referenced_object_name = referenced_entity_name, 
referenced_object_type_desc =so1.type_desc 
FROM sys.sql_expression_dependencies sed 
INNER JOIN sys.views o ON sed.referencing_id = o.object_id 
LEFT OUTER JOIN sys.views so1 ON sed.referenced_id =so1.object_id 
WHERE referenced_entity_name = 'Person'  

Вы также можете попробовать ApexSQL Search бесплатную SSMS и надстройку VS, которая также имеет функцию View Dependencies. Функция View Dependencies имеет возможность визуализировать все отношения объектов базы данных SQL, в том числе между зашифрованными и системными объектами, конкретными объектами SQL Server 2012 и объектами, хранящимися в базах данных, зашифрованных с помощью прозрачного шифрования данных (TDE)

Отказ от ответственности: я работаю для ApexSQL в качестве инженера поддержки

Ответ 3

Если вам нужно найти объекты базы данных (например, таблицы, столбцы, триггеры) по имени - посмотрите на инструмент БЕСПЛАТНО Red-Gate, называемый SQL Search, который делает это - он ищет всю вашу базу данных для любых строк (строк).

enter image description here

enter image description here

Это отличный инструмент для любого разработчика базы данных или базы данных - я уже упоминал об этом абсолютно БЕСПЛАТНО для использования любого вида использования

Ответ 4

Я считаю, что это работает лучше:

SELECT type, *
FROM sys.objects
WHERE OBJECT_DEFINITION(object_id) LIKE '%' + @ObjectName + '%'
AND type IN ('V')
ORDER BY name

Фильтрация VIEW_DEFINTION внутри INFORMATION_SCHEMA.VIEWS дает мне несколько ложных срабатываний.

Ответ 5

выберите вашу таблицу → зависимости от просмотра → Объекты, которые зависят от

Ответ 6

SELECT VIEW_NAME
FROM INFORMATION_SCHEMA.VIEW_TABLE_USAGE
WHERE TABLE_NAME = 'Your Table'