UPDATE aus einem SELECT in SQL Server

Das Aktualisieren von Daten in einer SQL Server-Tabelle auf Grundlage von Werten in einer anderen Tabelle oder Abfrage ist eine gängige Anforderung. In SQL Server wird dies oft durch Kombinieren der UPDATE– und SELECT-Anweisungen erreicht.

Grundlage:

In vielen Datenbankszenarien besteht das Bedürfnis, die Daten einer Tabelle basierend auf den Daten einer anderen Tabelle zu aktualisieren. Dies ist besonders nützlich, wenn zwei Tabellen ähnliche Daten enthalten und eine Tabelle mit aktualisierten oder korrekten Daten aus der anderen Tabelle aktualisiert werden muss.

Syntax:

Das grundlegende Format, um ein UPDATE aus einem SELECT in SQL Server durchzuführen, sieht wie folgt aus:

UPDATE ZielTabelle
SET ZielSpalte1 = QuelleTabelle.QuelleSpalte1, 
    ZielSpalte2 = QuelleTabelle.QuelleSpalte2, ...
FROM QuelleTabelle
WHERE Bedingung;

Beispiel:

Angenommen, wir haben zwei Tabellen: Mitarbeiter und AktualisierteGehaelter. Wir möchten die Gehälter in der Mitarbeiter-Tabelle basierend auf den neuen Gehältern in der AktualisierteGehaelter-Tabelle aktualisieren:

UPDATE Mitarbeiter
SET Gehalt = AktualisierteGehaelter.NeuesGehalt
FROM AktualisierteGehaelter
WHERE Mitarbeiter.MitarbeiterID = AktualisierteGehaelter.MitarbeiterID;

In diesem Beispiel wird das Gehalt in der Mitarbeiter-Tabelle mit dem Wert aus NeuesGehalt in der AktualisierteGehaelter-Tabelle aktualisiert, wobei die MitarbeiterID beider Tabellen als Verbindungskriterium dient.

Schlussfolgerung:

Das Kombinieren von UPDATE und SELECT in SQL Server ist ein mächtiges Werkzeug, um Daten effizient zu aktualisieren. Es ist wichtig, die Bedingungen im WHERE-Abschnitt sorgfältig zu definieren, um sicherzustellen, dass nur die beabsichtigten Datensätze aktualisiert werden. Ein guter Ansatz ist es, die Abfrage zuerst mit einem SELECT ohne UPDATE zu testen, um sicherzustellen, dass die richtigen Daten ausgewählt werden.