こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

 テーブルA(主キー有り)とテーブルB(主キー有り)をLEFT OUT

 テーブルA(主キー有り)とテーブルB(主キー有り)をLEFT OUTER JOINで外部結合したテーブルが

読み取り専用になっていて、データの更新ができないのですが、更新出来る方法が解らずに、困っていま

す。この結合したテーブルのデータを更新できるようにするにはどのようにすればよいのでしょうか、お助け

願います。

SQL SERVER 2008 EXEPRESS EDITION をインストールしたPCからSQL 2000 serverのデータベースに

アクセスしています。

投稿日時 - 2010-10-11 18:01:28

QNo.6242985

困ってます

このQ&Aは役に立ちましたか?

5人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

>1 とは基のテーブルということですよね
う~ん、少し違う。別に基がnで、従が1もありえます。
主キーを結合条件にしている方が1です。だって、重複
しないわけですからね。但し、従側の場合は結合しない、
即ち、実体が無いことがあるため、更新できません。
やっぱり、一時テーブルに抽出して、主キーによる
INNER JOIN を考えるほうが間違いないですし、少し
複雑な処理にも応用できるので、こちらを勧めたいですね。

投稿日時 - 2010-10-12 16:43:17

ANo.1

>JOINで外部結合したテーブルが
こういうのはクエリと言って、テーブルではありません。
クエリが更新可能になるのは1:1か1:nの1側だけです。
主キー以外で結合すると、この関係を保証できないので、
たいてい、更新不可能です。
一時テーブルを駆使してこの関係を構築するようにします。
何も掲載がないので、これ以上は答えようがありません。

投稿日時 - 2010-10-11 19:45:14

お礼

ありがとうございます。

すみません。テーブルとクエリを良く分かってない状態での

質問で、テーブルを結合した場合にできるのは、クエリということ

がわかりました。「1:1か1:nの1側だけです」

ということは、今回はテーブルを結合した場合の1:nに当たるわけですよね、

 1 とは基のテーブルということですよね。このクエリの基側の部分の列は

更新できるということですよね。これからやってみたいと思います。

アドバイスありがとうございました。

投稿日時 - 2010-10-12 13:07:12

あなたにオススメの質問