Могу ли я поместить два оператора обновления для одной и той же таблицы в условие? - PullRequest
0 голосов
/ 31 марта 2020

У меня есть два блока операторов обновления. Оба для одной и той же таблицы с разной частью 'где'. Я хочу, чтобы, если запускается одно обновление, другое не должно.

Вот мой код для операторов обновления:

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 

1 Ответ

1 голос
/ 31 марта 2020

Вы можете использовать Количество строк, чтобы определить, влияет ли инструкция на какие-либо строки. Как то так ...

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
...