单个查询中的多个SQL Update语句

Eri*_*Ely 11 sql sql-update

我处于这样一种情况,即我必须在我的数据库中更新大约12,000个项目.每行都需要镜像我之前创建的excel文件.我创建了创建每行SQL语句的文件,但我不确定是否可以在单个查询中运行每一行.

这是我想要做的一个例子.

UPDATE [STORESQL].[dbo].[RPT_ITM_D] SET F1301='1.29' WHERE F01='0000000000001'
UPDATE [STORESQL].[dbo].[RPT_ITM_D] SET F1301='1.39' WHERE F01='0000000000002'
Run Code Online (Sandbox Code Playgroud)

这会起作用,还是有更好的选择来实现我想要实现的目标?

每个项目都有一个唯一值,要更改的列也将具有唯一值.我不知道如何用循环或我到目前为止找到的任何其他方法来完成这项工作.我意识到这可能需要很长时间才能完成,但时间不是问题.

先感谢您

Ica*_*rus 20

这样的事情是你能做的最好的事情: -

UPDATE [STORESQL].[dbo].[RPT_ITM_D] 
SET   F1301 = 
      case  F01 
      when '0000000000001' then '1.29'
      when '0000000000002' then '1.30'
end
Run Code Online (Sandbox Code Playgroud)

除此之外,运行多个更新是可行的方法.

  • 他试图更新12,000个唯一值,我不认为Case是一个有效的选项 (5认同)

Bas*_*nni 9

是的,您可以在一个查询中添加所有单行Update-statement,就像您正在做的那样.