更新数据库记录时where子句出现问题

问题描述

|| 我在ABAP中有一个屏幕,可以更新数据库行。它的工作方式是:我可以更新\'row \',但问题是,它正在更新表中的每一行,而不是where子句中指定的行。 这是我正在使用的代码
UPDATE zmotoren_jat SET:
prijs = zmotoren_jat-prijs,naam = zmotoren_jat-naam
WHERE motorid = zmotoren_jat-motorid. \"this line doesn\'t seem to work!
知道为什么这行不通吗?我确定\'motorid \'存在:我没有收到错误,我正在使用同一行,1ѭ删除行,这行得通。     

解决方法

        您的问题似乎与第一行中的冒号(:)和第二行中的逗号(,)有关。 冒号引入了链式语句,它可能会将带有“ 2”的第一个语句视为单独的语句,从而更新了第一个语句中的所有记录(因为WHERE子句仅适用于第二个语句)。 取出冒号并删除SET指定符之间的逗号,然后重试。 有关一些示例代码的说明,请参见Esti答案。     ,        Mydog的答案正确。 基本上,您的语法会转换为以下内容:
UPDATE zmotoren_jat SET prijs = zmotoren_jat-prijs.
UPDATE zmotoren_jat SETnaam = zmotoren_jat-naam
 WHERE motorid = zmotoren_jat-motorid.
即它会更新表中每个记录的价格,然后更新指定ID的名称。 你想要的是
UPDATE zmotoren_jat 
  SET prijs = zmotoren_jat-prijs
      naam  = zmotoren_jat-naam
WHERE motorid = zmotoren_jat-motorid.