Ich habe eine Frage zu geplanten Jobs in SQL Server. Nun, ich denke, es hängt nicht genau mit geplanten Jobs zusammen, sondern mit SQL-Abfragen.geplante Aufträge in SQL Server 2012
Wie auch immer ich habe 2 Tabellen Table_1 und Table_2 in meiner Datenbank.
Ich möchte alle 5 Minuten einen geplanten Job ausführen, der Table_2 mit allen fehlenden Datensätzen aus Table_1 aktualisiert.
Zum Beispiel, wenn Table_1 hat 3 Datensätze:
1 ABC
2 PQR
3 XYZ
und table_2 hat nur 2 Datensätze:
2 PQR
3 XYZ
Was die Arbeit erledigt ist fügt den Datensatz "1 ABC" zu table_2:
Die Abfrage, die ich in den Schritten des geplanten Jobs geschrieben habe, lautet wie folgt:
In meinem Code Tabellennamen unterschiedlich sind, so mich bitte entschuldigen:
Table_1 = [sfs_test].dbo.[Table_1],
Table_2 = [sfs_test2].dbo.[Table_1]
INSERT INTO [sfs_test2].dbo.[Table_1] (UserID, UserName)
SELECT UserID, UserName
FROM [sfs_test].dbo.[Table_1]
WHERE UserID NOT IN (SELECT DISTINCT UserID
FROM [sfs_test2].dbo.[Table_1])
Nun ist das Problem, das ich mit Blick auf bin, wenn ich wie in einem Datensatz in Table_1 aktualisieren/ändern, wenn ich die ID der Änderung record "1 ABC" bis "4 ABC"
Wenn der Auftrag ausgeführt wird ich die folgenden Datensätze in table_2
2 PQR
3 XYZ
1 ABC
4 ABC
erhalten Während ich für die folgende Ausgabe freu:
2 PQR
3 XYZ
4 ABC
Ich habe versucht, meine Situation so gut wie möglich zu erklären. Ich bin neu in diesem Forum, also entschuldige ich mich dafür, irgendeine dumme Frage gestellt zu haben oder sie nicht gut zu erklären. Jede Hilfe ist
geschätztEDIT:
Vielen Dank für die Antworten Jungs!
Ich glaube, ich habe nicht erwähnt, dass jede Spalte von Tabelle_1 aktualisiert werden kann und das gleiche sollte in Tabelle_2 widerspiegeln.
@Jibin Balachandrans Lösung funktioniert gut, wenn nur die Benutzer-ID aktualisiert wird, aber nicht dort, wo andere Spalten geändert werden.
Ich habe mit einer Lösung aus meiner eigenen kommen und würde Ihre Meinung mag:
wäre es sinnvoll, die Datensätze aus table_2 löschen rechts Join und dann links mit Verwendung von Join die Datensätze einzufügen, die in Table_1 existieren in Tabelle_2?
@Ranjana Gritmire Ich habe deine Lösung immer noch nicht ausprobiert. Werde tun, wenn nichts anderes klappt. Danke :)
ich die entfernt MySQL-Tag seit Ihrer Frage über SQL Server. –
danke für alle Änderungen, Leute! Sieht viel sauberer aus :) – J09
Also willst du nur ein 'ABC' und lösche das zweite – Sami