- 締切済み
テーブルA(主キー有り)とテーブルB(主キー有り)をLEFT OUT
テーブルA(主キー有り)とテーブルB(主キー有り)をLEFT OUTER JOINで外部結合したテーブルが 読み取り専用になっていて、データの更新ができないのですが、更新出来る方法が解らずに、困っていま す。この結合したテーブルのデータを更新できるようにするにはどのようにすればよいのでしょうか、お助け 願います。 SQL SERVER 2008 EXEPRESS EDITION をインストールしたPCからSQL 2000 serverのデータベースに アクセスしています。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- nda23
- ベストアンサー率54% (777/1415)
回答No.2
>1 とは基のテーブルということですよね う~ん、少し違う。別に基がnで、従が1もありえます。 主キーを結合条件にしている方が1です。だって、重複 しないわけですからね。但し、従側の場合は結合しない、 即ち、実体が無いことがあるため、更新できません。 やっぱり、一時テーブルに抽出して、主キーによる INNER JOIN を考えるほうが間違いないですし、少し 複雑な処理にも応用できるので、こちらを勧めたいですね。
- nda23
- ベストアンサー率54% (777/1415)
回答No.1
>JOINで外部結合したテーブルが こういうのはクエリと言って、テーブルではありません。 クエリが更新可能になるのは1:1か1:nの1側だけです。 主キー以外で結合すると、この関係を保証できないので、 たいてい、更新不可能です。 一時テーブルを駆使してこの関係を構築するようにします。 何も掲載がないので、これ以上は答えようがありません。
お礼
ありがとうございます。 すみません。テーブルとクエリを良く分かってない状態での 質問で、テーブルを結合した場合にできるのは、クエリということ がわかりました。「1:1か1:nの1側だけです」 ということは、今回はテーブルを結合した場合の1:nに当たるわけですよね、 1 とは基のテーブルということですよね。このクエリの基側の部分の列は 更新できるということですよね。これからやってみたいと思います。 アドバイスありがとうございました。