Frage

Ich weiß, dass der Titel merkwürdig erscheinen kann, aber das ist, was ich tun möchte:

    .
  1. Ich habe Tisch mit vielen Aufzeichnungen.
  2. 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 ...

  3. 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 ...

War es hilfreich?

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.

Arbeitsbeispiel bei Data Explorer.

Sie sollten so etwas tun: generasacodicetagpre.

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