2012-09-11 2 views
0

Existe-t-il un moyen de récupérer facilement une liste de tables sous-jacente à une vue? Par exemple, dans la vue suivante:Récupération de la liste des tables référencées à partir d'une vue SQL à l'aide d'une requête

CREATE VIEW ExampleView AS 
SELECT p.personId, p.surname, p.forename, p.countryCode, c.countryName 
FROM persons AS p 
INNER JOIN countries AS c ON p.countryCode = c.countryCode 

Les tables référencées sont personnes et pays

Est-il possible d'interroger une table système, en donnant le nom de la vue, de récupérer le tables référencées?

J'utilise SQL Server 2008

+0

Pourriez-vous être plus précis, comme la version de SQL Server? En outre, vous devez spécifier le préfixe lors de la création ou du référencement d'objets pour éviter de détecter des faux positifs. –

+0

@AaronBertrand - Ajout de v de sql. Que voulez-vous dire préfixe? Le code ci-dessus a été effacé afin qu'il s'intègre bien sur S.O - c'est juste un exemple – Alex

+0

Je veux dire comme inclure 'dbo.' dans la vue de création et la requête. Ceci est une bonne pratique et rendra votre code compatible. –

Répondre

1
SELECT * FROM sys.dm_sql_referenced_entities(N'dbo.ExampleView', N'OBJECT'); 
+0

Merci, légèrement modifié à: SELECT distinct référencé nom_entité FROM sys.dm_sql_referenced_entities (N'dbo.ExampleView ', N'OBJECT'); – Alex

Questions connexes