Was kann dazu führen, dass die betroffenen Zeilen falsch sind?

8

Verwenden von Microsoft SQL Server Management Studio 2008. Ich habe eine einfache Transaktion durchgeführt:

%Vor%

Also sollten SELECT und UPDATE identisch sein. Und das Ergebnis sollte 0 Zeilen zurückgeben. Aber das UPDATE wirkt sich auf eine Zeile weniger aus als das SELECT von DB:

(61 Zeile (n) betroffen)

(60 Zeile (n) betroffen)

(0 Zeile (n) betroffen)

Was fehlt mir hier?

    
Indrek 05.10.2010, 14:01
quelle

2 Antworten

2

Ich vermute, der wahrscheinlichste Grund dafür ist, dass Table_a in Ihrem Beispiel eine Zeile mit einer doppelten ID enthält. Dies ist eine zusätzliche Zeile, die in der Verknüpfung in Ihrer ersten select , aber nur in der update erscheint befasst sich mit Zeilen in Tabelle_b, so dass Ihre doppelte Zeile keine Rolle spielt. Diese Aussage sollte Ihnen den Schuldigen geben:

%Vor%     
SqlRyan 05.10.2010, 15:36
quelle
0

UPDATE ... FROM erkennt keine Mehrdeutigkeiten wie diese:

%Vor%

Die Zeile in Ihrer Zieltabelle enthält zwei Übereinstimmungen in der Quelle und wir können nicht im Voraus wissen, welcher Wert das Ziel letztendlich aktualisiert.

    
A-K 05.10.2010 14:20
quelle