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 utilisant une certaine table?
Cela devrait le faire:
SELECT *
FROM INFORMATION_SCHEMA.VIEWS
WHERE VIEW_DEFINITION like '%YourTableName%'
Pour rechercher des dépendances de table, vous pouvez utiliser la vue catalogue sys.sql_expression_dependencies:
SELECT
referencing_object_name = o.name,
referencing_object_type_desc = o.type_desc,
referenced_object_name = referenced_entity_name,
referenced_object_type_desc =so1.type_desc
FROM sys.sql_expression_dependencies sed
INNER JOIN sys.views o ON sed.referencing_id = o.object_id
LEFT OUTER JOIN sys.views so1 ON sed.referenced_id =so1.object_id
WHERE referenced_entity_name = 'Person'
Vous pouvez également essayer ApexSQL Search un add-in gratuit SSMS et VS qui possède également la fonctionnalité Afficher les dépendances. La fonction Afficher les dépendances permet de visualiser toutes les relations des objets de base de données SQL, y compris celles entre les objets chiffrés et les objets système, les objets spécifiques à SQL Server 2012 et les objets stockés dans des bases de données chiffrées avec TDE (Transparent Data Encryption).
Avertissement: je travaille pour ApexSQL en tant qu'ingénieur support
Si vous avez besoin de trouver des objets de base de données (tables, colonnes, déclencheurs, par exemple) par nom, consultez le [~ # ~] free [~ # ~] Outil Red-Gate appelé Recherche SQL qui le fait - il recherche dans toute votre base de données tout type de chaîne.
C'est un excellent outil indispensable pour tout développeur de base de données ou DBA - ai-je déjà mentionné qu'il est absolument [~ # ~] gratuit [~ # ~] à utiliser pour tout type d'utilisation?
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
Filtrage VIEW_DEFINTION
à l'intérieur INFORMATION_SCHEMA.VIEWS
me donne pas mal de faux positifs.
SELECT VIEW_NAME
FROM INFORMATION_SCHEMA.VIEW_TABLE_USAGE
WHERE TABLE_NAME = 'Your Table'
sélectionnez votre table -> Afficher les dépendances -> Objets dépendant de