使用sqlcommand从子表更新父表

wb1gzix0  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(385)

我有两张table: WorkSchedule 它有两列 WorkScheduleID 以及
WorkScheduleStatus WorkShiftBid 它有3列: WorkShiftBidID , WSBidStatus , WorkScheduleID (外键) WorkSchedule 表)
我想更新 WorkScheduleWorkShiftBid table。大致是这样的:
我在我的网站上按下一个按钮,它会显示当前 WorkShiftBidID 并更新 WSBidStatus “已批准”。
不过,我想更新一下 WorkScheduleStatus 以及 WSBidStatus 两个表中的“已批准”,其中 WorkScheduleID 在两个表中是相同的。
我提出了这个问题,但它不起作用:

com.CommandText = "update WorkShiftBid b, WorkSchedule w" +
                  "set b.WSBidStatus ='Approved' and w.WorkScheduleStatus = 'Approved'" +
                  "where WorkShiftBidID = @id and w.WorkScheduleID = b.WorkScheduleID";
com.Parameters.AddWithValue("@id", id);

我应该如何改变它的工作?

5uzkadbs

5uzkadbs1#

不能用一个update命令更新两个表。但是,您可以在一个批中执行2个更新,或者如果愿意,可以将它们作为2个批发送:

com.CommandText = @"update WorkShiftBid
  set WSBidStatus ='Approved'
  where WorkShiftBidID = @id;

update w
  set WorkScheduleStatus = 'Approved'
from WorkSchedule w
  inner join WorkShiftBid b
     on w.WorkScheduleID = b.WorkScheduleID
  where WorkShiftBidID = @id";

com.Parameters.Add("@id", SqlDbType.Int).Value = id;

相关问题