sql-server - 我可以将同一张表的两个更新语句放在一个条件中吗?
问题描述
我有两个更新语句块。两者都用于具有不同“位置”部分的同一张表。我希望如果一个更新运行,另一个不应该。
这是我的更新语句代码:
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
解决方案
您可以使用 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
推荐阅读
- node.js - Typescript 和 Node.js 错误“语法错误:无法在模块外使用导入语句”
- javascript - 如何将删除线应用于字符串?
- python - 澄清 sci-kit learn OneClass SVM 到底在做什么?它不适合超球面
- amazon-web-services - 如何在 1 个 AMI 中附加 3 个可用区
- typescript - 代码完成对firebase不太有效?
- android-studio - 当我将 Android Studio 升级到北极狐 2020.3.1 时,mavenCentral() 不起作用
- javascript - 使用 Puppeteer 单击复选框时出错
- git - git rm 做什么而不是由操作系统和 git add 删除
- java - 使用servlet使用id打开jsp编辑页面
- database - MongoDB 对文档数组中的对象进行分组和计数