Lassen Sie sich das nach dem Einsetzen berücksichtigen:Wie funktioniert das Einfügen in Select intern in SQL Server?
INSERT INTO SOMETABLE
SELECT * FROM SOMETABLE
WHERE Column > NUMBER
Gibt es ein Risiko, dass aufgrund Einfügen geändert werden kann, die SELECT
Anweisung gesetzt Ergebnis? In den anderen Worten, wie oft die SELECT
-Anweisung kann von Abfrage-Engine INSERT INTO SELECT
auf die gleiche Tabelle durchgeführt werden?
Annahme: Ein einzelnes Thread-Szenario ohne gleichzeitige Transaktionen.
Nein. Ein Einfügevorgang ist ein einzelner ACIDic-Vorgang. Wenn es nicht gäbe, gäbe es massive Probleme mit dem gesamten Konzept einer Datenbank. https://en.wikipedia.org/wiki/ACID –
Ich denke das gleiche, aber ich war überrascht, als ich sah, dass einzelne Zeile wurde mehrmals statt nur einmal dupliziert. Vielleicht hatte ich Halluzinationen, die ich noch einmal überprüfen werde. – tgrabus
@grabus: Verwenden Sie Joins? Es ist praktisch, die INSERT-Zeile zu kommentieren und nur den SELECT-Teil auszuführen, um solche Anfragen zu behandeln. Auf diese Weise können Sie überprüfen, ob Ihre SELECT-Anweisung die erwarteten Daten erfasst. Ich vermute, Sie haben einen falsch konfigurierten Join oder einige schlechte Daten. Wenn Sie eindeutige Datensätze einfügen möchten, kann 'DISTINCT' dabei helfen. – Ellesedil