Y a-t-il un moyen de savoir si une table particulière est référencée par des vues ou non.Je utilisé le code ci-dessous qui ne donne que SP et noms de fonction: aide !! ! p> p>
3 Réponses :
Si vous avez besoin de trouver des objets de base de données (par exemple, des tables, des colonnes, des déclencheurs) par nom - Jetez un coup d'œil à l'outil C'est un excellent outil musqué pour tout développeur DBA ou de base de données - ai-je déjà mentionné qu'il est absolument Si cela ne correspond pas à votre facture - vous pouvez également consulter le pour savoir quels objets dépendent d'une donnée Tableau, vous pouvez utiliser quelque chose comme: p> qui devrait vous donner une liste de tous les objets en fonction de cette table (ou de la vue ou tout ce que vous vérifiez) p> p>
p>
p> SYSDePendes code> Vue du catalogue dans SQL Server - Il énumère ce que les objets dépendent de quoi (voir les détails dans les documents MSDN). p>
select * from INFORMATION_SCHEMA.VIEWS where VIEW_DEFINITION like '%abc%'
Méfiez-vous qu'il existe un nombre limité de caractères retourné pour chaque objet (rien de plus que la limite est tronquée), vous ne pouvez donc pas absolument dépendre de l'information_schema en toutes circonstances.
Premièrement, votre requête donne des vues dans le jeu de résultats (je l'ai essayée sur adentureworks2012 -> Production.Product Table):
p>
Si vous utilisez SQL Server 2008 ou plus, vous pouvez utiliser SYS.SQL_EXPRESSION_DePendances Vue du catalogue. Par exemple: P>
SELECT referencing_object_name = o.name, referencing_object_type_desc = o.type_desc, referenced_object_name = referenced_entity_name, referenced_object_type_desc = o1.type_desc FROM sys.sql_expression_dependencies sed INNER JOIN sys.objects o ON sed.referencing_id = o.[object_id] LEFT OUTER JOIN sys.objects o1 ON sed.referenced_id = o1.[object_id] WHERE referenced_entity_name = 'YourTable'