【问题标题】:Update column after select选择后更新列
【发布时间】:2012-12-26 06:30:39
【问题描述】:

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

SELECT *  
FROM tblA  
WHERE stateID = 1  
ORDER BY DateTime DESC

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

谢谢!

【问题讨论】:

  • 我不明白你在问什么。 UPDATE tblA SET something = something WHERE stateID = 1?
  • 假设 SELECT 返回 5 行,对于每一行,我想将其 stateID 更新为 2。
  • 如果你真的想更新行,为什么需要SELECT
  • 这是管理下载项目,如果我有多个下载者,我不希望下载者获得相同的项目。我认为通过将状态更改为其他内容,应该只有 1 个下载器处理唯一的下载项

标签: sql select procedure


【解决方案1】:

如果您在返回的结果中有唯一标识符,您可以这样做。

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

【讨论】:

    【解决方案2】:

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

    update tblA
    set col = value  
    WHERE stateID = 1  
    

    【讨论】:

      猜你喜欢
      • 2014-09-01
      • 2011-10-09
      • 2020-10-27
      • 1970-01-01
      • 2021-01-04
      • 2014-08-26
      • 2016-03-14
      • 2013-10-15
      • 1970-01-01
      相关资源
      最近更新 更多