web-dev-qa-db-fra.com

Sql Query pour répertorier toutes les vues d'une base de données SQL Server 2005

J'ai besoin d'une requête SQL pour énumérer toutes les vues (je n'ai besoin que des noms de vue) d'une base de données spécifique dans SQL Server 2005. Merci d'avance!

47
Mats

Pour terminer le set-off (avec ce qui a déjà été suggéré):

SELECT * FROM sys.views

Cela donne des propriétés supplémentaires sur chaque vue, non disponibles dans sys.objects (qui contient des propriétés communes à tous les types d'objet) ou INFORMATION_SCHEMA.VIEWS. Bien que l’approche INFORMATION_SCHEMA fournisse la définition d’affichage prête à l'emploi.

90
AdaTheDev
SELECT SCHEMA_NAME(schema_id) AS schema_name
,name AS view_name
,OBJECTPROPERTYEX(OBJECT_ID,'IsIndexed') AS IsIndexed
,OBJECTPROPERTYEX(OBJECT_ID,'IsIndexable') AS IsIndexable
FROM sys.views
11
madfrag
SELECT  *
FROM    sys.objects
WHERE   type = 'V'
9
David M

Exécutez cette addition DatabaseName dans la condition where.

  SELECT TABLE_NAME, ROW_NUMBER() OVER(ORDER BY TABLE_NAME) AS 'RowNumber' 
  FROM INFORMATION_SCHEMA.VIEWS 
  WHERE TABLE_CATALOG = 'DatabaseName'

ou supprimer où la condition ajoutant l'utilisation.

  use DataBaseName

  SELECT TABLE_NAME, ROW_NUMBER() OVER(ORDER BY TABLE_NAME) AS 'RowNumber' 
  FROM INFORMATION_SCHEMA.VIEWS 
3
hgulyan
select v.name
from INFORMATION_SCHEMA.VIEWS iv
join sys.views v on v.name = iv.Table_Name
where iv.Table_Catalog = 'Your database name'
3
J S

Vous aurez parfois besoin d'accéder avec schemanom, par exemple, vous utilisez la base de données AdventureWorks à laquelle vous devez accéder avec des schémas.

 SELECT s.name +'.'+v.name FROM sys.views v inner join sys.schemas s on s.schema_id = v.schema_id 
2
Elshan

Nécromancie.

Puisque vous avez dit TOUS les points de vue, techniquement, toutes les réponses à ce jour sont fausses.
Voici comment obtenir TOUTES les vues:

SELECT 
     sch.name AS view_schema 
    ,sysv.name AS view_name 
    ,ISNULL(sysm.definition, syssm.definition) AS view_definition 
    ,create_date 
    ,modify_date 
FROM sys.all_views AS sysv 

INNER JOIN sys.schemas AS sch 
    ON sch.schema_id = sysv.schema_id 

LEFT JOIN sys.sql_modules AS sysm 
    ON sysm.object_id = sysv.object_id 

LEFT JOIN sys.system_sql_modules AS syssm 
    ON syssm.object_id = sysv.object_id 

-- INNER JOIN sys.objects AS syso ON syso.object_id = sysv.object_id 

WHERE (1=1) 
AND (sysv.type = 'V') -- seems unnecessary, but who knows
-- AND sch.name = 'INFORMATION_SCHEMA' 
/*
AND sysv.is_ms_shipped = 0  
AND NOT EXISTS 
(
    SELECT * FROM sys.extended_properties AS syscrap
    WHERE syscrap.major_id = sysv.object_id
    AND syscrap.minor_id = 0 
    AND syscrap.class = 1 
    AND syscrap.name = N'Microsoft_database_tools_support' 
)  
*/

ORDER BY 
     view_schema 
    ,view_name 
0
Stefan Steiger