Une application tierce stocke des données dans une énorme base de données (SQL Server 2000/2005). Cette base de données contient plus de 80 tables. Comment pourrais-je savoir combien de tables sont affectées lorsque l'application stocke un nouvel enregistrement dans la base de données? Y at-il quelque chose disponible je peux récupérer la liste des tables affectées?Comment savoir combien de tables sont affectées dans la base de données après l'insertion d'un enregistrement?
Répondre
Vous pourriez être en mesure de dire en exécutant une trace dans SQL Profiler sur la base de données - l'événement SQL:StmtCompleted est probablement celui de surveiller - à savoir si l'application fait une série d'inserts en plusieurs tables, vous devriez les voir passer dans Profiler.
Vous pouvez ajouter des déclencheurs sur les tables qui sont déclenchées à la mise à jour. Vous pouvez l'utiliser pour mettre à jour une table de journal qui signalerait les mises à jour.
voir plus ici: http://www.devarticles.com/c/a/SQL-Server/Using-Triggers-In-MS-SQL-Server/
Est-ce que je vais ajouter des déclencheurs aux 80 tables? Puisque les données sont saisies par un outil tiers, j'ai juste besoin de savoir quand un enregistrement est inséré dans combien de tables sur 80 tables? – Jango
Vous pouvez utiliser SQL Profiler pour tracer des requêtes SQL. Ainsi, vous verrez la séquence d'appels causée par un clic sur un bouton dans votre application.
Également utiliser peut utiliser des métadonnées ou des outils SQL pour obtenir la liste des déclencheurs qui pourraient faire beaucoup d'actions sur simple insertion.
Profiler est la voie à suivre, comme d'autres l'ont dit en particulier avec une base de données tierce non familière. Je voudrais également passer du temps à créer des diagrammes afin que vous puissiez voir les relations de clés étrangères et comprendre comment la base de données est mise en place. Je connais si bien ma structure de base de données, je peux dire à partir des champs qui sont insérés quelles tables ils affectent et je sais quels déclencheurs sont sur mes tables et ce qu'ils affectent. Il n'y a pas de substitut pour prendre le temps de comprendre la base de données que vous soutenez.
J'ai aussi compris. Merci – Jango
Si vous avez le script SQL utilisé pour stocker le nouvel enregistrement (Généralement, il doit s'agir d'une instruction insert ou d'une autre instruction DML telle que update, merge, etc.). Ensuite, vous pouvez savoir combien de tables ont été affectées par l'analyse de ces scripts SQL.
Prenez ce SQL par exemple:
Insert into emp(fname, lname)
Values('john', 'reyes')
Vous pouvez obtenir le résultat comme ceci:
sstinsert
emp(tetInsert)
Tables:
emp
Fields:
emp.fname
emp.lname
- 1. Tables de base de données - combien de bases de données?
- 2. comment savoir combien d'utilisateurs sont connectés à une base de données particulière dans SQLSERVER2000
- 3. Comment puis-je savoir de combien d'espace j'ai besoin pour la base de données mysql
- 4. comment savoir le nom des tables dans la base de données connectée dans C#
- 5. Comment savoir combien de conditions OU sont satisfaites?
- 6. Comment compter chaque enregistrement dans chaque table dans une base de données SQL Server 2005?
- 7. Enregistrement des valeurs de formulaire dans la base de données après la connexion d'un utilisateur
- 8. Enregistrement d'images sur la base de données
- 9. Enregistrement de données à partir de tables connexes dans Winforms
- 10. comment savoir combien d'éléments sont sélectionnés dans la boîte de sélection
- 11. Enregistrement flux Rss dans la base de données
- 12. comment interroger la base de données sans accéder aux tables, corriger la base de données, mais pas les tables
- 13. Enregistrement dans la base de données à l'aide de JQuery
- 14. Enregistrement de la base de données dans Hash-of-hashes
- 15. Enregistrement dans une base de données SQL?
- 16. Insertion d'un enregistrement dans la base de données Msaccess
- 17. Vider les tables de la base de données dans mysql?
- 18. Combien de cases sont cochées
- 19. Comment puis-je savoir combien de parenthèses de capture sont dans une expression rationnelle Perl?
- 20. Comment savoir quelles tables temporaires sont actuellement dans la portée dans SQL Server?
- 21. Enregistrement des données de test dans Hibernate
- 22. Enregistrement d'une adresse IP dans la base de données
- 23. Enregistrement des événements ASP.NET dans la base de données
- 24. Comment puis-je savoir combien de classes sont dérivées d'une classe particulière à l'exécution en C++?
- 25. Comment puis-je copier un enregistrement SQL ayant des enregistrements associés dans d'autres tables dans la même base de données?
- 26. Comment contrôler la récupération de données à partir de tables dans une base de données
- 27. Comment obtenir la nouvelle taille de base de données après des opérations de largage différées?
- 28. Variables de table affectées dynamiquement?
- 29. Caractères amusants dans la base de données MySQL après l'importation
- 30. Comment afficher les tables créées dans une base de données
Je suppose que c'est en perspective, je considère 80 tables à une base de données minuscule. – HLGEM