【发布时间】:2011-06-25 04:24:11
【问题描述】:
如何获取 SQL Server 数据库中具有索引(即索引视图)的视图列表?
我发现在开发过程中运行“ALTER VIEW”非常容易,但忽略了我不仅要编辑视图,还要删除现有索引。所以我认为最好有一个小实用程序查询,它会列出所有带有索引的视图。
【问题讨论】:
标签: sql-server tsql sql-server-2008 metadata indexed-view
如何获取 SQL Server 数据库中具有索引(即索引视图)的视图列表?
我发现在开发过程中运行“ALTER VIEW”非常容易,但忽略了我不仅要编辑视图,还要删除现有索引。所以我认为最好有一个小实用程序查询,它会列出所有带有索引的视图。
【问题讨论】:
标签: sql-server tsql sql-server-2008 metadata indexed-view
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
【讨论】:
我喜欢使用较新的系统表:
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
【讨论】: