Aktualisierung von der Temp-Tabelle

8

Abfrage:

%Vor%

Hauptsächlich muss ich Daten OUT aus einem XML-Feld in normale Felder innerhalb derselben Tabelle kopieren.

Fragen:

  1. Gibt es einen Grund, warum alle Datensätze die HomeAddress auf Table1 erhalten?
  2. Ist wirklich Cursor die einzige Möglichkeit, den Wert von Table1 zu aktualisieren?
SF Developer 27.02.2013, 17:50
quelle

2 Antworten

19
%Vor%

Verwenden Sie eine Verknüpfung. Keine Notwendigkeit, temporäre oder korrelierte Unterabfrage zu erstellen.

Wenn sich Tabelle 1 in einem Verhältnis von eins zu vielen befindet, sind dies einige Möglichkeiten, um dies zu handhaben. Wenn Sie einen Wert haben, der nur einen einzigen Datensatz angibt (wir haben ein Feld in unserem System, das die wichtigste Adresse auswählt, wird es mit einem Trigger verwaltet, um Unikalität zu garantieren), versuchen Sie Folgendes:

%Vor%

Wenn Sie den eindeutigen Datensatz auf einem anderen Feld (z. B. dem neuesten Datum) basieren müssen, versuchen Sie eine Variation davon:

%Vor%     
HLGEM 27.02.2013 17:53
quelle
2

Bei der Aktualisierung muss ich die Tabelle wie folgt vollständig QUALIFIZIEREN:

UPDATE TABLE1
SET TABLE1.HomeAddress = (SELECT TOP 1 t.Adresse
                   VON #TMP t
                   WHERE t.ID = TABELLE1.ID)

    
SF Developer 27.02.2013 18:02
quelle