- 締切済み
更新クエリー
ACCESS2000です。 Aというテーブル(レコード件数500件くらい)のValue1というフィールドをBというテーブル(レコード件数1件)のValue1というフィールドの値で全件更新したいのですが、どのようなSQLを書けばよいのでしょうか。 基本的なことだと思いますがよろしくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- k_o_r_o_c_h_a_n
- ベストアンサー率55% (526/942)
回答No.2
>説明不足でしたが・・・ 説明不足でなくて、説明が不適切かと思うのですが・・ テーブルとビュー(クエリ)を同じに考えてはいけません。 基本的に、テーブルは更新可能ですが、ビュー(クエリ)は 必ずしも更新可能な訳ではありません。 どちらかというと「更新可能な場合もある」程度に考えた方が無難です。 解決法ですが、ビュー(クエリ)に対して更新するのでなく、 ビュー(クエリ)を構成するテーブルを更新するか、 ビュー(クエリ)を見直して、更新可能なものに置き換える、 のどちらかでしょう。
- k_o_r_o_c_h_a_n
- ベストアンサー率55% (526/942)
回答No.1
update A set Value1=(select B.Value1 from B) で良いのではないかと。 accessに限らず、ほとんどのRDBで動くと思います。
質問者
補足
こんばんは! 説明不足でしたが、実はご指摘のようなSQLを書いたのですが、「更新可能なクエリであることが必要です」というエラーメッセージが出力されてうまくいかないのです。
お礼
自己レスですが以下で解決しております。 update A,B set A.Value1 = B.Value1
補足
やりたいのは、Aというテーブルを更新するクエリーを作成したいのです。