假设我有以下句子,内部连接的结果是3行,其中a.Id = 4 ]* v1 G8 a3 P. g1 x6 V& Cb.Id,但是3行中的每行都有不同的b.Value。因为只更新了tableA所以在更新中使用了哪一行? , m/ ?. O8 z& L6 a, IUPDATE aSET a.Value = b.ValueFROM tableA AS aINNER JOIN tableB as b ON a.Id = b.Id 4 ^% a8 f( j" ]) H8 M解决方案: ! z7 @7 t3 f$ x* _, b$ c
我认为没有规则,你不能依赖特定的结果。: s( ?+ W6 N' k; S/ q$ G, ]. y
如果要排在特定行之后,请说出最后一行,可以用apply,例如:" Z5 p0 ?+ o; g7 S
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