批量更新报错 返回

SqlSugar 沟通中
8 368
该叫什么 4.20_ 发布于2025/8/18
悬赏:50 飞吻


image.png

生成的sql

UPDATE  "shop_ptype_audit"  SET "audit_status"=T."audit_status","audit_msg"=T."audit_msg" FROM              (VALUES

 (CAST('5' AS int4),CAST('1015' AS int4),CAST('4' AS int4),CAST('用户下架商品取消审核' AS varchar))


            ) AS T ("company_id","p_rec","audit_status","audit_msg") WHERE ( "audit_status" = @AuditStatus0 )
                   ;
@AuditStatus0:2,@company_id:5,@p_rec:1015,@audit_status:4,@audit_msg:用户下架商品取消审核

报错 column reference \"audit_status\" is ambiguous


热忱回答8

  • fate sta fate sta VIP0
    2025/8/18


    image.png

    where删掉试一下,目前批量更新只有部分库支持了where, 只能用wherecolumn ,先确认一下是不是where引起的

    如果是我这边支持一下

    0 回复
  • 4.20_ 4.20_ VIP0
    2025/8/18

    是where引起的,因为我更新的数据里面有auditstatus这个字段,where又用了这个字段引起的,我条件应该写在哪呢


    0 回复
  • fate sta fate sta VIP0
    2025/8/18

    这个我支持一下吧,暂时还没支持这个语法。文档也有写对象批量部分库支持where。

    0 回复
  • 4.20_ 4.20_ VIP0
    2025/8/18

    好的,感谢


    0 回复
  • fate sta fate sta VIP0
    2025/8/18

    不对你这个不是List<类>对象方式的批量更新 ,传的不是LIST

    0 回复
  • fate sta fate sta VIP0
    2025/8/18

    参数为一个对象改成这种SQL语句方式写法,而不是updateable(对象)

    var result= db.Updateable<Student>()
    .SetColumns(it => new Student() { Name="a",CreateTime=DateTime.Now})//类只能在表达示里面不能提取
    .Where(it => it.Id == 11)
    .ExecuteCommand();


    0 回复
  • 4.20_ 4.20_ VIP0
    2025/8/18

    我是更新的listimage.pngimage.png

    0 回复
  • 4.20_ 4.20_ VIP0
    2025/8/18

    我懂了

    我用你这种写法应该就可以了

    0 回复