Étant donné deux bases de données MS SQL qui sont connues pour avoir des schémas identiques, comment devrais-je savoir si elles contiennent des copies identiques des données? J'utilise MS SQL Server 2008 Express et codage en C# et v2.0 du framework .Net, en utilisant les API ADO.NET. Les deux instances de base de données sont toutes deux sur le même serveur SQL. Contexte: J'ai écrit un logiciel pour exporter des données d'une base de données vers un ensemble de fichiers, et pour réimporter les données de ces fichiers (dans une autre copie de la base de données); Je veux tester si j'ai perdu des données pendant l'aller-retour (plus précisément, s'il y a des données perdues ou laissées en arrière lors de l'exportation initiale).Comment vérifier si deux bases de données SQL Server contiennent des données égales?
Un moyen brut je suppose serait à SELECT *
de chaque table dans chaque base de données, puis de comparer les jeux d'enregistrements sélectionnés en utilisant le code côté client. Existe-t-il un autre moyen, qui nécessiterait moins de code côté client? J'ai trouvé de la documentation sur la sauvegarde et la restauration d'une base de données, ainsi que sur la sélection et l'insertion de données, mais je n'ai pas remarqué comment vérifier/prouver qu'un aller-retour a été complètement réussi, c.-à-d. si deux copies d'une table dans deux bases de données contiennent des données égales.
Merci; Je vois maintenant qu'il y a aussi une fonction CHECKSUM_AGG qui peut être utilisée pour prendre une somme de contrôle sur chaque ligne d'une table. http://dbwhisperer.blogspot.com/2009/02/checksumagg-very-nifty-function.html suggère de combiner CHECKSUM avec CHECKSUM_AGG, pour les applications d'assurance qualité. – ChrisW