В этом руководстве вы узнаете, как составить список всех представлений в базе данных SQL Server, отправив запрос к представлению системного каталога.
Чтобы составить список всех представлений в базе данных SQL Server, вы запрашиваете представление каталога sys.views или sys.objects. Вот пример:
SELECT OBJECT_SCHEMA_NAME(v.object_id) schema_name, v.name FROM sys.views as v;
Запрос возвращает следующий список имен схем и имен представлений:
В этом примере мы использовали функцию OBJECT_SCHEMA_NAME() для получения имен схем представлений.
Следующий запрос возвращает список представлений через представление sys.objects:
SELECT OBJECT_SCHEMA_NAME(o.object_id) schema_name, o.name FROM sys.objects as o WHERE o.type = 'V';
Создание хранимой процедуры для отображения представлений в базе данных SQL Server
Следующая хранимая процедура оборачивает приведенный выше запрос для вывода списка всех представлений в базе данных SQL Server на основе имени входной схемы и имени представления:
CREATE PROC usp_list_views( @schema_name AS VARCHAR(MAX) = NULL, @view_name AS VARCHAR(MAX) = NULL ) AS SELECT OBJECT_SCHEMA_NAME(v.object_id) schema_name, v.name view_name FROM sys.views as v WHERE (@schema_name IS NULL OR OBJECT_SCHEMA_NAME(v.object_id) LIKE '%' + @schema_name + '%') AND (@view_name IS NULL OR v.name LIKE '%' + @view_name + '%');
Например, если вы хотите узнать представления, содержащие слово sales, вы можете вызвать хранимую процедуру usp_list_views:
EXEC usp_list_views @view_name = 'sales'
Вот результат:
В этом руководстве вы изучили различные способы составления списка представлений в базе данных SQL Server путем запроса данных из представлений системного каталога.