Published on

April 21, 2021

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

Одна из общих проблем в SQL Server – это необходимость найти представления, которые уже установлены для определенных таблиц. Это может быть для других разработчиков, конечных пользователей или даже для нас самих. Хотя мы можем искать в системных таблицах или исследовать каждое представление, есть и другие способы легко найти список всех таблиц, используемых для представления, или список всех представлений, к которым привязана таблица.

Один из подходов к доступу к метаданным SQL Server – использование системных хранимых процедур или представлений INFORMATION_SCHEMA. Системные хранимые процедуры отлично оптимизированы для DBA при использовании через окно запроса, но они не всегда подходят для пользователей приложений, которым может потребоваться дополнительная фильтрация информации и замедление производительности. В этом случае мы можем получить необходимую информацию из представлений INFORMATION_SCHEMA SQL Server.

Давайте рассмотрим пример, в котором мы получаем информацию о базовой таблице для представления ‘vEmployee’ в базе данных ‘AdventureWorks’:


-- Синтаксис для получения базовых таблиц для представления
USE AdventureWorks
GO
SELECT view_name, Table_Name
FROM INFORMATION_SCHEMA.VIEW_TABLE_USAGE
WHERE View_Name = 'vEmployee'
ORDER BY view_name, table_name
GO

Результатом вышеприведенного запроса будут все таблицы, которые являются частью представления ‘vEmployee’. Если мы хотим найти все представления, в которых участвует таблица, мы можем использовать следующую команду:


-- Синтаксис для получения данных для таблицы 'Address'
-- Получить представления для таблицы 'Address' в AdventureWorks
USE AdventureWorks
GO
SELECT view_name, Table_Name
FROM INFORMATION_SCHEMA.VIEW_TABLE_USAGE
WHERE Table_Name= 'Address'
ORDER BY view_name, table_name
GO

Результатом вышеприведенного запроса будут все представления, в которых участвует таблица ‘Address’.

Метаданные представления, используемые в этом примере, определены в INFORMATION_SCHEMA. Эти представления могут быть найдены в SQL Server 2000 и более новых версиях. Схема INFORMATION_SCHEMA предоставляется в каждой базе данных SQL Server. В SQL Server Management Studio (SSMS) вы можете найти представления для схемы ‘INFORMATION_SCHEMA’ в папке ‘System Views’ в разделе ‘Views’.

Используя представления INFORMATION_SCHEMA, мы легко можем найти таблицы, используемые в представлении, и представления, используемые таблицей в SQL Server. Это может быть полезно для разработчиков, конечных пользователей и администраторов баз данных при анализе отношений между таблицами и представлениями в базе данных.

Click to rate this post!
[Total: 0 Average: 0]

Let's work together

Send us a message or book free introductory meeting with us using button below.