Je veux trouver tous les objets de la base de données qui dépendent d'une table donnée, y compris les autres tables qui font référence à la table donnée par le biais de clés étrangères. J'ai essayé d'utiliser "sp_depends" et cela me donne les sprocs, les vues et les triggers mais ne me dit pas quelles autres tables ont des clés étrangères à la table donnée. Avez-vous de l'aide ?
Réponses
Trop de publicités?
Enull
Points
256
L'ingrédient clé est la vue sys.foreign_keys. J'ai trouvé une requête qui pourrait être utile comme exemple dans un article de mssqltips.com... Identifier toutes vos clés étrangères dans une base de données SQL Server
Tim Schmelter
Points
163781
pufos
Points
728
Essayez aussi ceci :
USE AUX; <- use your database name
GO
SELECT f.name AS ForeignKey,
SCHEMA_NAME(f.SCHEMA_ID) SchemaName,
OBJECT_NAME(f.parent_object_id) AS TableName,
COL_NAME(fc.parent_object_id,fc.parent_column_id) AS ColumnName,
SCHEMA_NAME(o.SCHEMA_ID) ReferenceSchemaName,
OBJECT_NAME(f.referenced_object_id) AS ReferenceTableName,
COL_NAME(fc.referenced_object_id,fc.referenced_column_id) AS ReferenceColumnName
FROM sys.foreign_keys AS f
INNER JOIN sys.foreign_key_columns AS fc ON f.OBJECT_ID = fc.constraint_object_id
INNER JOIN sys.objects AS o ON o.OBJECT_ID = fc.referenced_object_id
GO
et avant le dernier GO vous pouvez ajouter where OBJECT_NAME(f.parent_object_id) = 'your_table_name'
pour ne voir que les dépendances de cette table.
Il imprimera TableName | Column name (FK) | Reference TableName | Reference Column Name