两个更新有一个条件

Rai*_*ker 3 sql sql-server

我想在一个语句中一起做2个更新,我希望在事务子句中使用更新将有助于此.但事实并非如此.所以下面,我期待它找到记录并更新它.但是它执行第一个,当它进入第二个时,值"Expired"已经为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;
Run Code Online (Sandbox Code Playgroud)

Jac*_*b H 5

我想你只需要一个逗号来更新两列:

Update main
Set expired = 0, TractorID = AssetID
where Expires > GETDATE() and Expired = 1
Run Code Online (Sandbox Code Playgroud)