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

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

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

Re[1]: データベース変更作業


(過去ログ 23 を表示中)

[トピック内 2 記事 (1 - 2 表示)]  << 0 >>

■10419 / inTopicNo.1)  データベース変更作業
  
□投稿者/ aiu (4回)-(2007/11/17(Sat) 00:44:24)

分類:[ASP.NET (C#)] 

C#.NETでSQL2000サーバでの開発です

ご教授お願いいたします。

まずデータベースへ値を格納するんですが、主キー値ですでに値がある場合はアップデート、無い場合はインサートして常に主キーに対して一つのレコードという感じで内容を格納してます。
方法はアップデートしてSQLのROWCOUNTで件数が0だった場合インサートというやり方です。
実際上手く動いているのですが、このままだと良く考えましたら、同時に五人ぐらいが同じ作業をした場合、主キーは違うものの、
アップデートに成功したらの後のROWCOUNT値が時と場合によりほかの方のアップデートのROWCOUNT値がでて問題が発生するのでは思いました。
そういったことは無いのでしょうか?
もしあるのなら、対処法はトランザクションとかってことなんでしょうか?

実際に稼動してしまっているため、とても気になりました。今ならまだ修正がきくのでお願いいたします。
引用返信 編集キー/
■10421 / inTopicNo.2)  Re[1]: データベース変更作業
□投稿者/ はつね (351回)-(2007/11/17(Sat) 01:33:14)
No10419 (aiu さん) に返信
> まずデータベースへ値を格納するんですが、主キー値ですでに値がある場合はアップデート、無い場合はインサート

トランザクション開始、SELECTしてレコードがあればUPDATE、なければINSERTでトランザクションエンド
Oracleであれば、FOR UPDATE付でSELECTしたりするのも有効な手。

引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -