Bei zwei MS SQL-Datenbanken, von denen bekannt ist, dass sie identische Schemas haben, wie soll ich feststellen, ob sie identische Kopien der Daten enthalten?Wie überprüft man, ob zwei SQL Server-Datenbanken gleiche Daten enthalten?
Ich benutze MS SQL Server 2008 Express und Codierung in C# und v2.0 des. NET-Framework mit ADO.NET-APIs. Die beiden Datenbankinstanzen befinden sich beide auf demselben SQL Server.
Hintergrund: Ich habe Software geschrieben, um Daten aus einer Datenbank in eine Reihe von Dateien zu exportieren und die Daten aus diesen Dateien wieder zu importieren (in eine andere Kopie der Datenbank); Ich möchte testen, ob ich während des Round-Trips Daten verloren habe (genauer gesagt, ob beim ersten Export Daten verloren gegangen sind oder zurückgeblieben sind).
Eine grobe Art und Weise würde ich zu SELECT *
von jeder Tabelle in jeder Datenbank sein, und dann die ausgewählten Recordsets mit clientseitigen Code zu vergleichen. Gibt es einen anderen Weg, der weniger clientseitigen Code erfordert?
Ich habe eine Dokumentation über das Sichern und Wiederherstellen einer Datenbank und über das Auswählen und Einfügen von Daten gefunden, aber noch nicht bemerkt, wie ein Round-Trip erfolgreich überprüft bzw. bewiesen werden kann, dh wie man es verifiziert ob zwei Kopien einer Tabelle in zwei Datenbanken die gleichen Daten enthalten.
Dank; Ich sehe jetzt, dass es auch eine CHECKSUM_AGG-Funktion gibt, die verwendet werden kann, um eine Prüfsumme über jede Zeile in einer Tabelle zu ziehen. http://dbwhisperer.blogspot.com/2009/02/checksumagg-very-nifty-function.html schlägt vor, CHECKSUM mit CHECKSUM_AGG für QA-Anwendungen zu kombinieren. – ChrisW