2015-06-29 6 views
6

Beim Durchführen eines Datenvergleichs mithilfe von SQL Server-Datentools über VS 2013 pro habe ich ein Szenario, bei dem einige Tabellen scheinbar verpasst werden.SQL Data Compare - Einige Tabellen fehlen

Was ich damit meine ist, gibt es Daten in TableA auf dem Quellserver, aber keine Daten in der entsprechenden Tabelle auf dem Zielserver.

Das Ergebnisfenster zeigt jedoch nicht einmal eine Zeile für TableA.

Auch wenn ich versuche, die Ergebnisse im nächsten Schritt vor dem Drücken von "Finish" zu filtern, erscheint TableA nicht als eine Option zum Filtern nach. Es ist fast so, als ob die Tabelle nicht auf dem Zielserver existiert. Ich habe festgestellt, das heißt tut von:

  • durch SSMS anschließen und sehen die Liste der Tabellen
  • Lauf SELECT * FROM information_schema.tables

In beiden Fällen kann ich sehen, die Tabelle aufgeführt ist.

Hat jemand anderes dies gesehen? Was vermisse ich?

+0

Daten gegen nur sein können, wenn Sie wissen, was aus den Tabellen Sätzen verglichen werden müssen. Comparer verwendet PK, um zu wissen, welche Datensätze verglichen werden sollen. Wenn Ihre Tabelle kein PK (oder zumindest einen eindeutigen Index) hat, fehlt sie in der Tabellenliste – jean

+0

Danke Jean, das war das Problem. Ich arbeite mit einer DB, die von jemand anderem zur Verfügung gestellt wurde, und habe nicht bemerkt, dass es auf diesem Tisch keine PK gibt (es gab tatsächlich ein paar andere mit dem gleichen Problem). Fügen Sie Ihren Kommentar als Antwort hinzu und ich werde es akzeptieren. –

Antwort

13

Daten können nur verglichen werden, wenn Sie wissen, welche Datensätze aus Tabellen verglichen werden müssen. Comparer verwendet PK, um zu ermitteln, welche Datensätze verglichen werden sollen. Wenn Ihre Tabelle kein PK (oder zumindest einen eindeutigen Index) hat, fehlt sie in der Tabellenliste.

Sie können es lösen, indem ein PK selbst erstellen (nur für comparasion)

+0

Ich habe das gleiche Problem, aber die Tabelle hat eine PK? Es hat einen PRIMARY KEY CLUSTERED – KillerSnail

+0

Beide Tabellen müssen eine Art "eindeutige" Spalte/Index erhalten. Normalerweise (idealerweise) ist ein PK einzigartig. Ein CLUSTERED-Index ist wahrscheinlich eindeutig – jean

+5

Microsoft sollte einen Indikator/eine Nachricht geben, dass bestimmte Tabellen Primärschlüssel benötigen, um zu vergleichen. Der Benutzer benötigt mehr Feedback auf dem Ausgabebildschirm, da dies beim Ausführen des Vergleichs nicht klar war. Danke für diese Antwort! –

Verwandte Themen