Summary: in this tutorial, you will learn how to list all views in the SQL Server database by querying the system catalog view.
To list all views in a SQL Server Database, you query the sys.views or sys.objects catalog view. Here is an example:
SELECT
OBJECT_SCHEMA_NAME(v.object_id) schema_name,
v.name
FROM
sys.views as v;Code language: SQL (Structured Query Language) (sql)The query returns the following list of schema names and view names:

In this example, we used the OBJECT_SCHEMA_NAME() function to get the schema names of the views.
The following query returns a list of views through the sys.objects view:
SELECT
OBJECT_SCHEMA_NAME(o.object_id) schema_name,
o.name
FROM
sys.objects as o
WHERE
o.type = 'V';
Code language: SQL (Structured Query Language) (sql)Creating a stored procedure to show views in SQL Server Database #
The following stored procedure wraps the query above to list all views in the SQL Server Database based on the input schema name and view name:
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 + '%');Code language: SQL (Structured Query Language) (sql)For example, if you want to know the views that contain the word sales, you can call the stored procedure usp_list_views:
EXEC usp_list_views @view_name = 'sales'Code language: SQL (Structured Query Language) (sql)Here is the result:

In this tutorial, you have learned various ways to list views in a SQL Server Database by querying data from the system catalog views.