T-SQL - Gibt es eine (kostenlose) Möglichkeit, Daten in zwei Tabellen zu vergleichen?
Ich habetable a
undtable b
. (SQL Server 2008)
Beide Tabellen haben genau das gleiche Schema.
Betrachten Sie für die Zwecke dieser Fragetable a
= meine lokale Entwicklertabelle,table b
= die Live-Tabelle.
Ich muss ein SQL-Skript erstellen (mitUPDATE/DELETE/INSERT
-Anweisungen), die Tabelle b so aktualisieren, dass sie mit Tabelle a identisch ist. Dieses Skript wird dann in der Live-Datenbank bereitgestellt.
Gibt es kostenlose Tools, die das können, oder noch besser, wie ich es selbst machen kann?
Ich denke, ich muss wahrscheinlich eine Art Join für alle Felder in den Tabellen ausführen und dann darauf basierend dynamisches SQL generieren.
Hat jemand irgendwelche Ideen?
BEARBEITE
Okay, dachte, ich würde diese Frage ein wenig klären.
Die zu synchronisierende Tabelle ist eine einfache Nachschlagetabelle. Die Daten sind sehr einfach und unkompliziert.
Hier ist eine Idee von dem, wasTABLE A
könnte so aussehen:
IdFoo Activity IsFoo
1 Foo 1
2 Bar 0
Hier ist eine Idee von dem, wasTABLE B
könnte so aussehen:
IdFoo Activity IsFoo
1 Foo 1
2 Bar 1
rundsätzlich, alles was ich tun möchte, ist dasBIT
Säule IsFoo
) imTABLE B
, um mit dem entsprechenden Wert in @ übereinzustimmTABLE A
für das gleiche IdFoo.
Merken Sie sich
TABLE A
ist auf meinem lokalen RechnerTABLE B
ist auf dem Live-ServerOffensichtlich habe ich eine (zuverlässige) Sicherung vonTABLE B
Auf meinem lokalen Computer, für den ich ein Skript erstellen muss, führen Sie das Skript dann auf dem Live-Server aus.
Die Tabelle hat auch referenzielle Integrität (andere Spalten, die ich nicht angezeigt habe). Was bedeutet, dass ich nicht einfach alles in @ löschen kaTABLE B
und mache eine Einfügung vonTABLE A
.
Dieses Skript ist einmalig. Also keine Notwendigkeit, Dinge wie Verbindungsserver, Replikation usw. zu tun. Schätzen Sie die Antworten, obwohl Jungs. =)
BEARBEITEN
Ok - also habe ich mich für Olegs Antwort entschieden (VS2010 Data Compare). Schnell, einfach und wirkt charmant.
Nicht zu sagen, die anderen Antworten sind falsch. Ich freue mich über alle Antworten!