首页 > 解决方案 > 我可以将同一张表的两个更新语句放在一个条件中吗?

问题描述

我有两个更新语句块。两者都用于具有不同“位置”部分的同一张表。我希望如果一个更新运行,另一个不应该。

这是我的更新语句代码:

Update transactionalData.TBL_WORK_ORDER_BOOKING_DETAILS  
 set Status='COMPLETED',EndDate= @date,Hours= convert (float,datediff(ss,StartDate,  @date ))/3600  
  where SignumID=@signumID and BookingID=@BookingID and status='started'  

Update transactionalData.TBL_WORK_ORDER_BOOKING_DETAILS
    set Status='Inprogress' where SignumID=@signumID and Status='onhold'  and BookingID=@BookingID
END 

标签: sql-serversql-update

解决方案


您可以使用 Row Count 来确定语句是否影响任何行。像这样的东西...

Update transactionalData.TBL_WORK_ORDER_BOOKING_DETAILS  
 set Status='COMPLETED',EndDate= @date,Hours= convert (float,datediff(ss,StartDate,  @date ))/3600  
  where SignumID=@signumID and BookingID=@BookingID and status='started'  

If @@RowCount = 0
    Begin
        Update transactionalData.TBL_WORK_ORDER_BOOKING_DETAILS
        set Status='Inprogress' where SignumID=@signumID and Status='onhold'  and BookingID=@BookingID
    End

推荐阅读