Je travaille sur un développement avec plus de 700 tables. J'ai besoin de voir une liste de toutes les tables liées à une table donnée. Pouvez-vous recommander une application qui est capable de fournir une telle chose.Trouver toutes les tables liées à une table donnée
Répondre
Si votre base de données prend en charge les vues du schéma d'informations (la plupart), vous pouvez exécuter cette requête:
SELECT
c.CONSTRAINT_NAME,
cu.TABLE_NAME AS ReferencingTable, cu.COLUMN_NAME AS ReferencingColumn,
ku.TABLE_NAME AS ReferencedTable, ku.COLUMN_NAME AS ReferencedColumn
FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS c
INNER JOIN INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE cu
ON cu.CONSTRAINT_NAME = c.CONSTRAINT_NAME
INNER JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE ku
ON ku.CONSTRAINT_NAME = c.UNIQUE_CONSTRAINT_NAME
Ceci affichera une liste de toutes les contraintes référentielles (clés étrangères), la source (référencement) table/colonne, et clé primaire (référencée) table/colonne.
Si vous voulez voir des références à une table spécifique , il suffit d'ajouter:
WHERE ku.TABLE_NAME = 'SomeTable'
Est-il possible de sélectionner un enregistrement unique et tous ses enregistrements connexes de cette façon sur un serveur sql? – codemonkeyliketab
@codemonkeyliketab poser les questions importantes – Kristopher
En fonction du produit de base de données, vous devriez être en mesure d'interroger les INFORMATION_SCHEMA
vues comme ceci:
Select FK.TABLE_SCHEMA, FK.TABLE_NAME
From INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS As RC
Join INFORMATION_SCHEMA.TABLE_CONSTRAINTS As PK
On PK.CONSTRAINT_NAME = RC.UNIQUE_CONSTRAINT_NAME
Join INFORMATION_SCHEMA.TABLE_CONSTRAINTS As FK
On FK.CONSTRAINT_NAME = RC.CONSTRAINT_NAME
Where PK.TABLE_SCHEMA = 'dbo'
And PK.TABLE_NAME = '<target table name>'
MS Visio Pro peut faire un bon travail de rétro-ingénierie d'un schéma db pour une variété de bases de données (via ODBC) et fournit un diagramme qui est très flexible. Avertissement: Quel que soit le système que vous utilisez, vous ne voulez pas tirer toutes les 700 tables en une seule fois. Essayez de créer plusieurs diagrammes groupés et séparés logiquement. Espérons qu'il y aura beaucoup de tels groupements dans une base de données aussi grande.
Malheureusement, cette fonctionnalité impressionnante a été abandonnée en 2013. 2010 était la dernière version avec elle. – jleach
Vous pouvez essayer ceci:
SELECT *
FROM
KEY_COLUMN_USAGE
WHERE
REFERENCED_TABLE_NAME = 'your_table_name'
AND REFERENCED_COLUMN_NAME = 'your_column_id'
AND TABLE_SCHEMA = 'your_database_name';
simple et solution la plus simple pour obtenir les tables connexes de table donnée en utilisant la procédure intégrée.
exec sp_fkeys 'Your_PK_TABLE_NAME'
Grande réponse ... – brijrajsinh
Syntaxe incorrecte près de 'GO'. Où vais-je me tromper ici? –
@Marimba, veuillez retirer le Go; de déclaration et exécuter. –
- 1. Trouver toutes les tables et les champs sur "plusieurs" côté des relations avec une certaine table
- 2. Comment trouver toutes les classes qui implémentent une interface donnée?
- 3. Mysql - trouver une table dans toutes les bases de données
- 4. Accéder à toutes les tables
- 5. Pour trouver toutes les permutations possibles d'une chaîne donnée
- 6. trouver une relation à travers plusieurs tables
- 7. Comment trouver toutes les entrées repo SVN avec un externe à une URL donnée
- 8. Sélectionnez les éléments de tables enfants avec une propriété donnée
- 9. rafraîchir les tables liées en accès
- 10. comment trouver des relations entre les tables
- 11. NHibernate Log Tables à suivre toutes les modifications à une table
- 12. Requête SQL utilisant les informations de 4 tables (pas toutes directement liées)
- 13. Mysql OPTIMIZE TABLE pour toutes les tables fragmentées
- 14. Comment chaîner des tables liées dans Access?
- 15. SQL Server 2005: Comment identifier toutes les tables faisant référence à une table spécifiée
- 16. Mysql: Obtenir les résultats de toutes les tables
- 17. Comment supprimer toutes les tables avec le préfixe "bkp" d'une base de données donnée?
- 18. Comment trouver toutes les clés étrangères?
- 19. Django: Comment obtenir toutes les tables et toutes les colonnes de cette table dans un projet?
- 20. Mysql sélectionner plusieurs colomn à partir de tables non liées
- 21. trouver les tables a des données binaires
- 22. Insérer des données dans 3 tables liées
- 23. Listes liées ou tables de hachage?
- 24. Toutes les tables jointes ont-elles des tables?
- 25. sqlite: comment trouver toutes les lignes d'une table où toutes les colonnes sont nulles?
- 26. Trouver toutes les références à Voir
- 27. Charger deux tables liées dans une base de données Oracle
- 28. Dans MySQL, comment séparer une table existante en plusieurs nouvelles tables liées?
- 29. Comment exécuter une procédure stockée à partir d'Access à l'aide de tables liées
- 30. Demander un avis: Une séquence pour toutes les tables
Quelle version/marque de SQL? Si c'est Microsoft, Management Studio peut créer un diagramme ... –