我想在一个语句中一起进行2次更新,我希望在事务子句中使用更新将有助于此。但事实并非如此。 所以下面,我期待它找到记录并更新它。但它确实是第一个,当它进入第二个时,价值"已过期"已经是0了。 我怎样才能做到这一点? (docid =' Syn25331'只是用一条记录进行测试。但我想要成千上万的记录,因此没有docid =' Syn25331'条件)
BEGIN TRANSACTION;
Update main
Set expired = 0
where Expires > GETDATE() and Expired =1 and docid ='Syn25331'
Update main
Set TractorID = AssetID
where Expires > GETDATE() and Expired =1 and docid ='Syn25331'
COMMIT;
答案 0 :(得分:5)
我认为你只需要一个逗号来更新两列:
Update main
Set expired = 0, TractorID = AssetID
where Expires > GETDATE() and Expired = 1
答案 1 :(得分:2)
您可以在单个更新语句中执行此操作
UPDATE main
SET expired = 0,
TractorID = AssetID
WHERE Expires > GETDATE() AND
Expired = 1