SQL更新函数不会抛出任何错误消息,但它不返回任何行

时间:2012-09-01 20:14:07

标签: sql

我正在尝试从另一个表更新表值。我想从pstatus更新productcode

这是我的代码(没有错误,结果为0行):

UPDATE pstatus
SET code=(select code FROM productcode)

除此之外,我无法在sql中重新运行任何更新 - 它没有错误,但返回0行(我在productcode表中有超过5行)。

3 个答案:

答案 0 :(得分:0)

更新语句不返回行。你应该使用更像

的东西
Update pstatus
   Set code=a.code
  from productcode a
 where a.*somekeyfield* = *value*

您必须确定要用作产品代码的单个记录作为更新的基础。 somekeyfield 应该是你需要确定的东西。

答案 1 :(得分:0)

更新statemend不会添加记录,只会更新表中已存在的记录。

update查询确实会对表中的所有记录进行操作,但由于没有记录,更新记录的数量为零。

如果要添加记录,则应使用insert查询:

insert into pstatus (code)
select code from productcode

答案 2 :(得分:0)

在这种情况下,您有两个问题

  1. 你说pstatus中没有任何行,如果表中没有记录表行怎么更新?

  2. 你的内部查询select code FROM productcode返回多行,然后sql如何决定在wich字段中设置值?