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!
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.
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
SELECT *
FROM sys.objects
WHERE type = 'V'
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
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'
Vous aurez parfois besoin d'accéder avec schema
nom, 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
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