假设我有以下句子,内部连接的结果是3行,其中a.Id = - F; v: q& v( i7 X; Pb.Id,但是3行中的每行都有不同的b.Value。因为只更新了tableA所以在更新中使用了哪一行?9 w, v6 t0 _1 z# @# k
UPDATE aSET a.Value = b.ValueFROM tableA AS aINNER JOIN tableB as b ON a.Id = b.Id % g2 u0 N# Y; a; L解决方案: / B, W6 E' f0 Z0 Q 我认为没有规则,你不能依赖特定的结果。2 j5 Y% r4 N4 j3 o4 h5 K2 \
如果要排在特定行之后,请说出最后一行,可以用apply,例如:8 G; E2 [4 m" J+ D6 Y/ n
UPDATE aSET a.Value = b.ValueFROM tableA AS aCROSS APPLY select top 1 * from tableB as b where b.id = a.id order by DateColumn desc as b