如何在SQL Server数据库中获取具有索引(即索引视图)的视图列表?
我发现在开发过程中运行“ALTER VIEW”非常容易,并且忽略了我不仅要编辑视图而且还要删除现有索引。因此,我认为有一个小实用程序查询可以很好地将所有视图列入我的索引。
答案 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