À des fins de test, je voudrais générer un script d'insertion pour tous les enregistrements de toutes les tables associées à un enregistrement particulier dans l'une des tables racines. Par exemple, je pourrais avoir une table "Participant", qui a un nombre quelconque d'entrées associées dans la table "Documents", qui à son tour a un certain nombre d'entrées associées dans la table "PrintRequests" et ainsi de suite. J'ai des centaines de ces tables dans la base de données.Comment obtenir tous les enregistrements associés à un enregistrement dans une table racine agrégée
Existe-t-il un moyen de sélectionner/scripter tous les enregistrements de toutes les tables associées, par exemple ParticipantId = 1? De cette façon, pour un participant représentatif, je peux extraire tous les enregistrements associés dans toutes les tables. Une de mes idées était de restaurer une sauvegarde de la base de données complète, de modifier toutes les contraintes de clé étrangère pour supprimer en cascade puis de supprimer tout ce qui n'est pas participantid = 1 et de laisser la base de données supprimer tout ce qui n'est pas lié au participant d'intérêt, puis script sur l'ensemble de la base de données de ce qui reste. Pour cela, il se peut que je doive abandonner et recréer toutes les contraintes que je ne sais pas comment faire dans toute la base de données.
Sinon, y a-t-il d'autres outils qui pourraient le faire? Un outil de migration par exemple qui peut prendre une requête et migrer uniquement les enregistrements et les enregistrements enfants associés de cette requête?
Outil intéressant. L'une des principales raisons d'utiliser le sous-ensemble de la production pour nous est que cela facilite les tests. Nous pouvons regarder l'application de production et savoir par exemple que "John Smith" a 30 documents dont 12 sont des commandes d'achat. En outre, lorsque des utilisateurs/testeurs soumettent des bogues qui disent quelque chose comme "le code postal d'Alice Smith ne peut pas être modifié", nous pouvons le répliquer plus facilement. – Chaitanya
@Chaitanya - Je sais que c'est des années après votre commentaire, mais je fais des recherches sur un nouvel outil Redgate, SQL Clone, et cela m'aiderait à savoir pourquoi vous n'utilisez pas actuellement une restauration complète de la production pour les tests. Merci! –
@DavidAtkinson - Taille et temps. La restauration complète de la production db convient aux environnements CI/UAT/Test, mais pas à la machine locale de dev. En déboguant un problème ou en essayant de nouvelles idées/refacteurs, il est difficile de restaurer une base de données complète. – Chaitanya