SQL Server 2019通过自连接更新表中Record_Id空值的实现问题
语句正确性确认
你编写的UPDATE语句在SQL Server 2019环境下完全符合需求,执行后可以得到你预期的输出结果。
逻辑说明
- 自连接关联条件
t1.Section_Id_1 = t2.Section_Id可以精准匹配到需要更新的行对应的关联记录,正确取到目标Record_Id值 WHERE t1.Record_Id IS NULL过滤条件仅会更新原本Record_Id为空的行,不会修改已有有效值的记录,避免误操作
可选扩展说明
如果你的实际业务场景中Section_Id存在重复值,同一个t1行可能匹配到多个t2行时,SQL Server会随机选择一个t2的Record_Id执行更新,这种情况下可以调整为子查询写法保证更新逻辑可控,你当前给出的测试场景中Section_Id唯一,原有语句没有任何问题。
执行完更新语句后,执行SELECT * FROM Sect即可验证输出和你给出的预期结果一致。
内容的提问来源于stack exchange,提问作者No Body
相关产品推荐
相关产品推荐

