我想做一个SELECT来获取ID列表,根据这些ID进行更新,然后返回这些记录.
我想这样的东西,我只是不知道语法:
SELECT WebHookLogIDs = FROM WebHookLog
WHERE Processing=0
AND Processed=0
AND Paused=0
ORDER BY FailCount ASC, WebHookLogID DESC
UPDATE WebHookLog
SET Processing = 1
WHERE WebHookLogID IN(WebHookLogIDs)
SELECT * FROM WebHookLog
WHERE WebHookLogID IN(WebHookLogIDs)
Run Code Online (Sandbox Code Playgroud)
我认为将数据放入Temp表更好,而不是在其中插入数据
因为在最后你想要返回那些记录,所以你需要使用临时表
DECLARE @Table1 TABLE (WebHookLogIDs INT)
Insert into @Table1(WebHookLogIDs )
SELECT WebHookLogIDs FROM WebHookLog
WHERE Processing=0
AND Processed=0
AND Paused=0
ORDER BY FailCount ASC, WebHookLogID DESC
UPDATE WebHookLog
SET Processing = 1
WHERE WebHookLogID IN( select WebHookLogIDs from @Table1)
SELECT * FROM WebHookLog
WHERE WebHookLogID IN(select WebHookLogIDs from @Table1)
DROP TABLE @Table1
Run Code Online (Sandbox Code Playgroud)