2009-12-11 4 views
0

J'ai été chargé d'accrocher notre produit avec un autre produit tiers. Une des choses que je dois faire est d'imiter certaines fonctionnalités du produit tiers lors de l'ajout de nouveaux "projets" - qui peuvent toucher plusieurs tables de base de données. Est-il possible d'ajouter une sorte de hook global à une base de données qui enregistrerait toutes les modifications apportées aux données?Existe-t-il un moyen facile de suivre toutes les modifications dans une base de données SQL 2005

Je voudrais ajouter le crochet, créer un projet en utilisant l'application tierce, puis vérifier ce que toutes les tables ont été affectées. Je sais que c'est plus que de nouvelles lignes aussi, j'ai rencontré un certain nombre de champs de compte qui semblent être incrémentés pour de nouveaux projets et je crains qu'il puisse y avoir d'autres enregistrements qui sont modifiés sur un nouveau projet et pas seulement de nouvelles lignes ajoutées.

Merci pour toute aide ~ Prescott

Répondre

0

Je peux penser à des façons suivantes, vous pouvez suivre les changements

  1. Run Profiler SQL Server qui capture toutes les requêtes exécutées sur le serveur. Vous pouvez les filtrer par base de données, schéma ou ensemble de tables, etc.
  2. Utilisez un lecteur de journal de transactions tiers. C'est un processus beaucoup moins intrusif. Vous devez vous assurer que vous avez défini la récupération complète sur la base de données.
0

Assurez-vous que le journal ne sera pas réutilisé:

  • la base de données est en mode de récupération complète (true complète, avec une sauvegarde initiale)
  • la les tâches de maintenance de sauvegarde du journal sont suspendues pendant la durée du test

Ensuite:

  • écriture sur la base de données actuelle LSN
  • exécuter votre projet 3rd party créer
  • vérifier les informations du journal nouvellement ajouté avec select * from ::fn_log(oldcurrentLSN, NULL);

Toutes les opérations d'écriture apear dans le journal. A partir de l'opération physique (ID de l'unité d'allocation), vous pouvez accéder à l'opération logique (ID de l'objet). Maintenant que cela est dit, vous devriez probablement avoir une bonne compréhension du schéma de 3ème partie et du modèle de données si vous envisagez d'interagir avec lui directement au niveau de la base de données. Si vous prévoyez de mettre à jour l'outil tiers et que vous ne savez même pas quelles tables mettre à jour, vous finirez probablement par corrompre ses données.

Questions connexes