2009-05-13 4 views
1

Ich benutze SQL-Server 2005.So erhalten Sie RedGate Data Compare zur Berücksichtigung der Sortierreihenfolge?

Ich habe eine dev-und prod-Datenbank, die im Wesentlichen die gleichen Daten in ihnen haben. Wenn ich einen Vergleich mit RedGate SQL Data Compare 5 mache, heißt das, dass nur 4 Datensätze unterschiedlich sind. Wenn ich jedoch die Tabellen öffne und sie betrachte, sind sie in einer völlig anderen Sortierreihenfolge. Keine der Tabellen hat einen Index oder irgendetwas, das die Sortierreihenfolge erzwingt, und ich versuche sicherzustellen, dass mein Entwickler in der gleichen Reihenfolge wie prod sortiert ist. Aber RedGate wird es mir nicht sagen, wenn ich in der Nähe bin, weil es anscheinend Datensätze findet, die übereinstimmen, auch wenn sie nicht in der gleichen Reihenfolge sind. Wie überschreibe ich das?

Ich möchte das Tool verwenden, um zu sagen, wenn ich die Sortierreihenfolge herausgefunden habe, um sicherzustellen, dass ich es richtig gemacht habe.

Antwort

1

Unterschiedliche Sortierreihenfolge bedeutet nur, dass die Zeilen in den Datendateien auf eine physisch unterschiedliche Weise platziert werden, aber die Daten immer noch genau übereinstimmen, sodass DC weiterhin meldet, dass sie übereinstimmen. Es gibt keine Option, um "Physische Datenträgerreihenfolge respektieren" zu erhalten (was im Wesentlichen das ist, was Sie fragen), denn selbst wenn es einen Unterschied bemerkt, gibt es keine Möglichkeit, den Unterschied zu synchronisieren, da SQL Server keine Methode zur Steuerung von Modify besitzt Festplattenauftrag.

Die Reihenfolge, in der Daten beim Abfragen einer Tabelle von der Festplatte abgerufen werden, sollte nicht verlässlich sein. Wenn Sie eine bestimmte Reihenfolge benötigen, sollten Sie eine "ORDER BY" -Klausel in Ihre Abfrage einfügen Auftrag. Wenn Sie aus irgendeinem Grund ORDER BY nicht verwenden können, besteht die einzige andere Möglichkeit, eine bestimmte Sortierreihenfolge zu erzwingen, darin, einen gruppierten Index in das Feld einzufügen, nach dem Sie die Tabelle sortieren möchten.

Wenn Sie die Daten wirklich neu ordnen müssen, müssen Sie die Tabelle, die "falsch" ist, abschneiden und sie mit einem "INSERT INTO [Tabelle der fehlerhaften Bestellung] füllen. SELECT * FROM [Tabelle der guten Bestellung]" . Auch dann, wenn es den gewünschten Effekt haben sollte, gibt es keine Garantie.

Ich würde die Reihenfolge nach Klausel als Ihre beste Option empfehlen. Wenn es einen Grund gibt, warum keine dieser Optionen funktioniert, lassen Sie es mich wissen und ich kann versuchen, etwas anderes vorzuschlagen.

+0

Ja, eine Bestellung scheint die beste Wahl zu sein. Leider habe ich es mit einigen historischen Daten zu tun, die mit externen Daten verknüpft sind. Dabei verwende ich die Standardreihenfolge, um zu wissen, wie sie verlinkt sind. Dumm, aber da ist es. Ich denke, wir müssen nur eine Bestellung aufgeben und alle Daten, einschließlich der verknüpften Daten, aktualisieren, so dass dies richtig gehandhabt wird. – thursdaysgeek

Verwandte Themen