84 votes

Comment trouver quelles vues utilisent une certaine table dans SQL Server (2008) ?

Je dois ajouter quelques colonnes à une table et je dois également ajouter ces colonnes à toutes les vues qui utilisent cette table.

Est-il possible d'obtenir une liste de toutes les vues d'une base de données qui utilisent une certaine table ?

145voto

James Hill Points 27532

Cela devrait le faire :

 SELECT * 
FROM   INFORMATION_SCHEMA.VIEWS 
WHERE  VIEW_DEFINITION like '%YourTableName%'

7voto

Steven de Salas Points 4611

Je trouve que ça marche mieux :

 SELECT type, *
FROM sys.objects
WHERE OBJECT_DEFINITION(object_id) LIKE '%' + @ObjectName + '%'
AND type IN ('V')
ORDER BY name

Le filtrage de VIEW_DEFINTION intérieur de INFORMATION_SCHEMA.VIEWS me donne pas mal de faux positifs.

3voto

Dmitry Points 49
SELECT VIEW_NAME
FROM INFORMATION_SCHEMA.VIEW_TABLE_USAGE
WHERE TABLE_NAME = 'Your Table'

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X