Ich habe ein Problem beim Aktualisieren einer Tabellenvariablen. Ich habe es schon erklärt, aber wenn ich die ganze Abfrage ausführen bekomme ich diesen Fehler:Falsche Syntax in der Nähe von '.'. Während Update einer Variablentabelle
Incorrect syntax near '.'.
Und ich kann nicht um das Problem zu lösen scheinen ...
UPDATE @List
SET nrID = CASE
WHEN nrID IS NULL
THEN t1.nrID
ELSE nrID
END
FROM @List
INNER JOIN table1 t1 ON @List.PNr = t1.PNr
INNER JOIN table2 t2 ON t1.n nrPNr = t2.nrPNr
WHERE t1.PNr = t2.PNr AND t2.Isactive = 0
versuchen, den Tabellennamen von hier ‚SET @ List.nrID‘ herausnehmen, haben Sie gesagt, dass es bereits welche Tabelle Sie aktualisieren. –
Sie haben table2 den Alias von "O" gegeben, aber Sie fügen dem Alias von "t2" bei. In Ihrem Code ist kein "t2" definiert. – JiggsJedi
Wenn Sie "nrID" mit "table1" verbinden, ist Ihre set/case -Anweisung redundant, "@ List.nrID" wird nie null sein, da es ein Join-Prädikat ist und null kann nicht zu irgendetwas als solches gefügt werden kann nicht auf Gleichheit geprüft werden. Mit anderen Worten, Ihr innerer Join zu 'table1' entfernt sofort alle Zeilen mit einer Null' 'List.nrID' '- so wird jede gefundene Zeile gerade auf' @ List.nrID' aktualisiert. – JiggsJedi