0

別のテーブルからテーブル値を更新しようとしています。pstatusから更新したいproductcode

これが私のコードです(エラーは発生せず、結果は0行になります):

UPDATE pstatus
SET code=(select code FROM productcode)

これに加えて、SQLで更新を再実行することはできません-エラーは発生しませんが、0行を返します(productcodeテーブルに5行以上あります)。

4

3 に答える 3

0

updateステートメントは行を返しません。もっと似たようなものを使うべきだった

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

更新の基礎として使用する製品コードの単一レコードを決定する必要があります。somekeyfieldがどうあるべきかは、あなたが決定する必要があるものです。

于 2012-09-01T20:21:32.773 に答える
0

update ステートメントはレコードを追加せず、テーブルに既に存在するレコードのみを更新します。

updateクエリは実際にはテーブル内のすべてのレコードを更新しますが、レコードがないため、更新されたレコードの数はゼロです。

レコードを追加する場合は、insert代わりにクエリを使用する必要があります。

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

この場合、2つの問題があります

  1. テーブルにレコードがない場合、pstatusに行がないと言います。どうすればテーブル行を更新できますか?

  2. あなたの内部クエリselect code FROM productcodeは複数の行を返します.SQLはどのようにどのフィールドに値を設定することを決定しますか?

于 2012-09-01T20:27:40.633 に答える