C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 39 を表示中)
■20574 / )  Re[3]: 新規登録と更新を併せたSQL文の書き方
□投稿者/ 鶏唐揚 (190回)-(2008/06/12(Thu) 16:13:08)
No20571 (はまや さん) に返信
> ■No20566 (επιστημη さん) に返信
>>UPDATEを試み、その結果UPDATEされたレコードがなければINSERT、でしょうか。
>># ORACLEにはMERGE INTO... てのがあるそうな
>
> 楽観的更新時を考慮して、timestampとかをWHEREに追加している場合は、
> 更新行が0で返ってくるので、その場合はレコードがあって更新しなかったのか
> レコードが無くて更新できなかったのかを判断しなくてはならないかと思います。
>
> その場合は、SELECT文でCODEA検索した結果にてIF〜ELSEした方が良いと思います。
>
ストアドじゃない話で申し訳ないのですが、私も
プログラム中からSQL発行する場合に、更新対象を抽出できる条件でいったんSELECTして、
ゼロ件だったらINSERT、そうでなかったらUPDATEするようにしてます。

これならば更新対象はおそらく1件だと思うので時間もかからないはずですし、
応用性があるのでお勧めします。

プログラムでの応用例:
フラグによって更新対象未存在時の挙動を、
「エラー」とするか「追加」とするか変更できる 等
返信 編集キー/


管理者用

- Child Tree -