• 締切済み

更新クエリー

ACCESS2000です。 Aというテーブル(レコード件数500件くらい)のValue1というフィールドをBというテーブル(レコード件数1件)のValue1というフィールドの値で全件更新したいのですが、どのようなSQLを書けばよいのでしょうか。 基本的なことだと思いますがよろしくお願いいたします。

みんなの回答

回答No.2

>説明不足でしたが・・・ 説明不足でなくて、説明が不適切かと思うのですが・・ テーブルとビュー(クエリ)を同じに考えてはいけません。 基本的に、テーブルは更新可能ですが、ビュー(クエリ)は 必ずしも更新可能な訳ではありません。 どちらかというと「更新可能な場合もある」程度に考えた方が無難です。 解決法ですが、ビュー(クエリ)に対して更新するのでなく、 ビュー(クエリ)を構成するテーブルを更新するか、 ビュー(クエリ)を見直して、更新可能なものに置き換える、 のどちらかでしょう。

hideto_urata
質問者

お礼

自己レスですが以下で解決しております。 update A,B set A.Value1 = B.Value1

hideto_urata
質問者

補足

やりたいのは、Aというテーブルを更新するクエリーを作成したいのです。

回答No.1

update A set Value1=(select B.Value1 from B) で良いのではないかと。 accessに限らず、ほとんどのRDBで動くと思います。

hideto_urata
質問者

補足

こんばんは! 説明不足でしたが、実はご指摘のようなSQLを書いたのですが、「更新可能なクエリであることが必要です」というエラーメッセージが出力されてうまくいかないのです。

関連するQ&A