2011-02-10 2 views
12

Comment obtenir une liste des vues d'une base de données SQL Server ayant des index (c'est-à-dire des vues indexées)?Comment répertoriez-vous toutes les vues indexées dans SQL Server?

J'ai trouvé qu'il est assez facile d'exécuter un "ALTER VIEW" au fur et à mesure que je développe et que je ne suis pas seulement en train d'éditer la vue mais aussi de supprimer un index existant. J'ai donc pensé que ce serait bien d'avoir une petite requête utilitaire qui me listerait de toutes les vues avec des index.

Répondre

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

J'aime utiliser les tables système plus récentes:

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 
) 
Questions connexes