Просмотры списков SQL Server

В этом руководстве вы узнаете, как составить список всех представлений в базе данных SQL Server, отправив запрос к представлению системного каталога.

Чтобы составить список всех представлений в базе данных SQL Server, вы запрашиваете представление каталога sys.views или sys.objects. Вот пример:

SELECT 
 OBJECT_SCHEMA_NAME(v.object_id) schema_name,
 v.name
FROM 
 sys.views as v;

Запрос возвращает следующий список имен схем и имен представлений:

Пример представления списка SQL Server

В этом примере мы использовали функцию 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 с использованием хранимой процедуры

В этом руководстве вы изучили различные способы составления списка представлений в базе данных SQL Server путем запроса данных из представлений системного каталога.

Мирослав С.

Автор статей, ИБ-специалист