Haben Sie Probleme hier.SQL Server Update-Anweisung mit einem Join für mehrere Spalten
Tabelle 1:
CID, Name, HID
(001-233, Test1, 12345)
Tabelle 2:
CID, Name, HID, Primary
(001-233, Test1, 12345, '')
Wollen Table2
aktualisieren, bei denen eine Verknüpfung mit Table1
mit einem konstanten Wert existiert genannt 'Y'
So ist Aussage wie folgt:
UPDATE T2 SET T2.Primary = 'Y'
FROM T2
INNER JOIN T1
ON (T1.CID = T2.CID
AND T1.HID = T2.HID)
Diese Anweisung endet nur mit der Aktualisierung aller Zeilen, es ist so, als würde nur eine Verbindung mit einer ID hergestellt und nicht die andere? Ich gab schließlich auf und machte eine WHERE IN
Unterabfrage mit einer einzigen "ID" durch Verketten der beiden IDE-Felder CID + HID. Aber ich möchte verstehen, warum das nicht mit der richtigen Verbindung funktioniert hat.
Table1
ist ein CTE ..
Dies sollte funktionieren, könnten Sie einige Beispieldaten hinzufügen, die man erwarten würde nicht aktualisiert werden? – Andomar
Das funktioniert für mich. Ich stelle mir vor, dass es alle Zeilen aktualisiert, da in T1 für jede Zeile von T2 übereinstimmende Zeilen vorhanden sind. – Phil
Funktioniert nicht, T1 ist ein CTE. Ich verstehe nicht, dass es mich verrückt macht. Es funktioniert andersrum, ich verstehe es einfach nicht. – sridawg