T-SQL löschen eingefügte Datensätze
-
12-11-2019 - |
Frage
Ich weiß, dass der Titel merkwürdig erscheinen kann, aber das ist, was ich tun möchte:
- .
- Ich habe Tisch mit vielen Aufzeichnungen.
-
Ich möchte einige dieser Datensätze erhalten und in andere Tabelle einfügen.So etwas wie folgt:
INSERT INTO TableNew SELECT * FROM TableOld WHERE ...
-
Der knifflige Teil ist, dass ich möchte, dass diese Zeilen, die ich eingesetzt habe, auch gelöscht, um die Ursprungstabelle zu löschen.
gibt es einen einfachen Weg, dies zu tun, da der einzige der Meinung ist, dass ich es geschafft habe, dass ich eine temporäre Tabelle zum Speichern der ausgewählten Datensätze und dann in den zweiten Tisch einfügen kann und die mit ihnen übereinstimmenden Zeilen löschendie erste Tabelle.Es ist eine Lösung, aber mit so vielen Aufzeichnungen (über 3 Millionen und halb) suche ich nach einer anderen Idee ...
Lösung
Im Jahr 2005+ nutze OUTPUT
-Klausel wie folgt:
generasacodicetagpre.
Es wird in einer einzelnen Transaktion durchgeführt und entweder gleichzeitig abgeschlossen oder rollen
Andere Tipps
Sie können den einfügen ... Output Klausel zum LadenDie IDs der kopierten Reihen in einer temporären Tabelle.Dann können Sie die Zeilen von der Originaltabelle basierend auf der temporären Tabelle löschen. generasacodicetagpre.
Sie sollten so etwas tun: generasacodicetagpre.