Frage

Ich bin mit SQL-Server 2005.

Ich habe einen Entwickler und prod Datenbank, die im Wesentlichen die gleichen Daten in ihnen. Wenn ich vergleiche ein mit RedGate SQL Data Compare 5, heißt es, dass nur 4 Datensätze unterscheiden. Allerdings, wenn ich die Tabellen öffnen und betrachten Sie sie, sie sind in einer ganz anderen Sortierreihenfolge. Weder Tabelle hat einen Index oder irgendetwas die Sortierreihenfolge zu zwingen, und ich versuche, meine dev um sicherzustellen, dass in der gleichen Reihenfolge wie prod sortiert. Aber RedGate will mir nicht sagen, wenn ich in der Nähe bin, weil es offenbar Aufzeichnungen zu finden ist, die übereinstimmen, auch wenn sie nicht in der gleichen Art Ordnung sind. Wie kann ich das außer Kraft setzen?

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

War es hilfreich?

Lösung

Unterschiedliche Sortierreihenfolge bedeutet nur, dass die Zeilen in den Datendateien in eine physikalisch unterschiedlichen Art und Weise angeordnet sind, aber die Daten übereinstimmt noch genau, so DC meldet immer noch, dass sie übereinstimmen. Es gibt keine Möglichkeit, es zu bekommen, um „physische Festplatte, um Respekt“ (was im Wesentlichen ist, was Sie fragen), denn selbst wenn es einen Unterschied bemerkt hat, gibt es keine Möglichkeit, den Unterschied zu synchronisieren, da SQL Server keine Methode hat zu steuern, ändern Platte um.

Die Ordnung, die Daten von der Platte gezogen wird, wenn Sie eine Tabelle abfragen, nicht immer Verlass ist - wenn Sie eine bestimmte Reihenfolge benötigen, sollten Sie ein „ORDER BY-Klausel“ in der Abfrage enthalten eine bestimmte Reihenfolge, um zu erzwingen . Wenn es aus irgendeinem Grund ist, dass Sie nicht ORDER BY, die einzige andere Option auf dem Feld eine bestimmte Sortierreihenfolge zu erzwingen ist das Hinzufügen einer Clustered-Index, mit dem können Sie die Tabelle sortieren möchten.

Wenn Sie die Daten wirklich brauchen, um neu zu ordnen, dann müssen Sie die Tabelle kürzen, die „falsch“ ist, und füllen Sie es mit einer „INSERT INTO [schlecht Ordnung Tabelle] SELECT * FROM [gute Ordnung Tabelle]“. Selbst dann, während es die gewünschte Wirkung haben sollte, gibt es keine Garantie.

würde ich den Auftrag durch Klausel als die beste Wahl empfehlen. Wenn es einen Grund, keine dieser Optionen ist arbeiten, lassen Sie mich wissen und ich kann versuchen, etwas anderes zu suggerieren.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top