在本教學中,將學習如何通過查詢系統目錄視圖列出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
視圖返回視圖列表:
在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存儲過程