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存儲過程