2011-02-10 88 views
12

如何獲得具有索引​​(即索引視圖)的SQL Server數據庫中的視圖列表?如何列出SQL Server中的所有索引視圖?

我發現運行「ALTER VIEW」非常容易,因爲我正在開發並忽略我不僅編輯視圖而且刪除現有索引。所以我認爲這將是很好,有一個小實用程序查詢周圍會列出我所有的索引視圖。

回答

18
SELECT o.name as view_name, i.name as index_name 
    FROM sysobjects o 
     INNER JOIN sysindexes i 
      ON o.id = i.id 
    WHERE o.xtype = 'V' -- View 
9

我喜歡用較新的系統表:

select 
    OBJECT_SCHEMA_NAME(object_id) as [SchemaName], 
    OBJECT_NAME(object_id) as [ViewName], 
    Name as IndexName 
from sys.indexes 
where object_id in 
    (
    select object_id 
    from sys.views 
)