SQL Server列出视图

在本教程中,将学习如何通过查询系统目录视图列出SQL Server数据库中的所有视图。

要列出SQL Server数据库中的所有视图,请查询sys.viewssys.objects目录视图。 下面是一个例子:

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

该查询返回以下模式名称和视图名称列表:

在此示例中,使用OBJECT_SCHEMA_NAME()函数来获取视图的模式名称。

以下查询通过sys.objects视图返回视图列表:

在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存储过程