如何在SQL Server中列出所有索引视图?

时间:2011-02-10 21:38:29

标签: sql-server tsql sql-server-2008 metadata indexed-view

如何在SQL Server数据库中获取具有索引(即索引视图)的视图列表?

我发现在开发过程中运行“ALTER VIEW”非常容易,并且忽略了我不仅要编辑视图而且还要删除现有索引。因此,我认为有一个小实用程序查询可以很好地将所有视图列入我的索引。

2 个答案:

答案 0 :(得分:21)

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

答案 1 :(得分:12)

我喜欢使用较新的系统表:

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
  )

内部联接版本

select 
    OBJECT_SCHEMA_NAME(si.object_id) as [SchemaName],
    OBJECT_NAME(si.object_id) as [ViewName],
    si.Name as IndexName
from sys.indexes AS si
inner join sys.views AS sv
    ON si.object_id = sv.object_id
相关问题