Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 选择后更新列_Sql_Select_Procedure - Fatal编程技术网

Sql 选择后更新列

Sql 选择后更新列,sql,select,procedure,Sql,Select,Procedure,我有一个MS SQL存储过程(SP): 仍然在同一SP中,如何更新SELECT语句返回的每一行的stateID列?SP仍然返回SELECT语句中的行 谢谢 您可以这样做,因为这将返回相同的行 update tblA set col = value WHERE stateID = 1 如果返回的结果中有唯一标识符,则可以执行此操作 UPDATE tblA SET stateID = 2 WHERE download_id in (select download_id from FROM

我有一个MS SQL存储过程(SP):

仍然在同一SP中,如何更新SELECT语句返回的每一行的stateID列?SP仍然返回SELECT语句中的行


谢谢

您可以这样做,因为这将返回相同的行

update tblA
set col = value  
WHERE stateID = 1  

如果返回的结果中有唯一标识符,则可以执行此操作

UPDATE tblA SET stateID = 2 WHERE download_id in (select download_id from FROM tblA  
WHERE stateID = 1  
ORDER BY DateTime DESC)

我不明白你在问什么
UPDATE tblA SET something=somethine,其中stateID=1
?假设SELECT返回5行,并且对于每行,我想将其stateID更新为2。如果确实要更新行,为什么需要
SELECT
?这是为了管理下载项目,如果我有多个下载程序,我不想让下载者得到同样的东西。我认为通过将状态更改为其他状态,应该只有一个downloader处理唯一的下载项目
UPDATE tblA SET stateID = 2 WHERE download_id in (select download_id from FROM tblA  
WHERE stateID = 1  
ORDER BY DateTime DESC)