0

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

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

UPDATE pstatus
SET code=(select code FROM productcode)

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

4

3 回答 3

0

更新语句不返回行。你应该使用更多类似的东西

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

您必须确定您希望使用 productcode 中的哪条记录作为更新的基础。somekeyfield应该是什么是您需要确定的。

于 2012-09-01T20:21:32.773 回答
0

更新语句不添加记录,它只更新表中已经存在的记录。

update查询确实更新了表中的所有记录,但由于没有记录,更新的记录数为零。

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

insert into pstatus (code)
select code from productcode
于 2012-09-01T20:24:43.100 回答
0

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

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

  2. 您的内部查询select code FROM productcode返回多于一行然后 sql 如何决定在哪个字段中设置值?

于 2012-09-01T20:27:40.633 回答