假设我有以下句子,内部连接的结果是3行,其中a.Id = ( `4 z( _- u" @* Eb.Id,但是3行中的每行都有不同的b.Value。因为只更新了tableA所以在更新中使用了哪一行?/ ]/ v, n6 r, {" X+ j
UPDATE aSET a.Value = b.ValueFROM tableA AS aINNER JOIN tableB as b ON a.Id = b.Id . E! V( i( u9 D& @3 x8 M解决方案: $ V0 E0 C8 T# |3 e3 ~9 d2 d6 c 我认为没有规则,你不能依赖特定的结果。% W9 E, M. }7 ~: }: [
如果要排在特定行之后,请说出最后一行,可以用apply,例如:& [& f, f! D# x
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