![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
1テーブル&複数レコードの更新に対して1度のupdate文での処理方法
Delphi2010+SQL SERVER 2005で開発しています。
update文で、
現在下のようにwhileで複数レコードに対して、
1回、1回、sqlを発行して、更新しています。
これを、一度のSQLの発行で処理できないものでしょうか?
更新テーブルは1つで、更新する項目も同じです。
更新するデータと、where句の条件が異なります。
もし可能なようでしたら、どうかご教授お願いします。
update table set A=1,B=2 where id=1
update table set A=2,B=3 where id=5
update table set A=9,B=99 where id=7
update table set A=5,B=10 where id=15
update table set A=1,B=10 where id=75
No.4ベストアンサー
- 回答日時:
ですか・・・。
じゃあWhileで発行するのをやめたらどうですか?
BEGIN TRAN
update table set A=1,B=2 where id=1;
update table set A=2,B=3 where id=5;
update table set A=9,B=99 where id=7;
update table set A=5,B=10 where id=15;
update table set A=1,B=10 where id=75;
COMMIT
まとめて実行・・・。
ありがとうございました。
まさにおっしゃる通りで、できました。
まとめて、クエリを発行できることを知らなかったもので、
初歩の初歩なのかもしれませんが、
目から鱗でした。感謝です。
皆さんさんありがとうございました。
No.3
- 回答日時:
いいかどうかはともかくとして。
。update table
SET
A=CASE id WHEN 1 THEN 1 WHEN 5 THEN 2 WHEN 7 THEN 9 WHEN 15 THEN 5 WHEN 75 THEN 1 END,
B=CASE id WHEN 1 THEN 2 WHEN 5 THEN 3 WHEN 7 THEN 99 WHEN 15 THEN 10 WHEN 75 THEN 10 END
WHERE id IN (1,5,7,15,75)
ありがとうございます。
やってみたのですが、
whenの条件が最大で10万以上になってしまい、
どうやら文が長すぎてダメなようです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- Oracle SQL update方法 2 2022/06/22 14:07
- Access(アクセス) DoCmd.SearchForRecord が動かない時の解決方法 3 2022/07/22 15:31
- MySQL UPDATE my_items SET item_name '赤い,甘い,ケーキ' WHERE id 1 2023/01/03 09:52
- Access(アクセス) アクセス テーブルの空白を変数に置換するボタンが作りたい 4 2022/07/08 11:19
- Access(アクセス) access,vbaでフォルダ内のファイルをテーブルにインポート、ファイル名もフィールドに追加したい 1 2022/08/31 11:11
- JavaScript html javascriptにてWeb SQLを操作したい。 2 2022/12/16 17:43
- Oracle sqlのupdate文で質問です。 テーブルBの番号をキーにテーブルAの身長をテーブルBの身長に更新 2 2022/11/02 15:15
- PHP php エラー 2 2022/10/23 16:43
- MySQL MYSQL エラー 2 2022/10/18 11:37
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
updateで複数行更新したい
Oracle
-
VB.NETで DataRow()を利用して、値からコードを取得したい。
Visual Basic(VBA)
-
複数レコードの複数フィールドを一括UPDATE出来ますか?
Oracle
-
-
4
SQL 複数テーブルのupdate
Oracle
-
5
データセットのレコード更新がしたい
Visual Basic(VBA)
-
6
DataTableに入っているデータを全てinsertしたい!(C#)
Microsoft ASP
-
7
DataGridViewの内容をDBに反映する時
Visual Basic(VBA)
-
8
<VB.NET>INSERT文でDBにデータを入れたい
Visual Basic(VBA)
-
9
別フォームから戻ったときのイベント
Visual Basic(VBA)
-
10
VB.NETでコンボボックスの1行目を空白にしたい
Visual Basic(VBA)
-
11
VB.NET DataGridView 縦スクロールバーを常に表示
Visual Basic(VBA)
-
12
データベースのデータをTextBoxに入力された値で検索しDataGridViewに表示する方法
Visual Basic(VBA)
-
13
SQL文のCOUNTの戻り値は?
その他(データベース)
-
14
コントロールを移動できない
Visual Basic(VBA)
-
15
オラクルのUPDATEで複数テーブル
Oracle
-
16
GROUP BYを行った後に結合したい。
Oracle
-
17
SQLで複数のテーブルと結合したUPDATE文
Visual Basic(VBA)
-
18
VB6.0の「vbFromUnicode」はVB.NETではどれに相当しますか?
Visual Basic(VBA)
-
19
初期フォーカスについて
Visual Basic(VBA)
-
20
【VB】コンボボックスにデータベースから取り出した値を入れたい
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
マイクラPC版のコマンドで効率...
-
副問合せの書き方について
-
SQLについての質問
-
貝を買って中から死にかけのカ...
-
インスタの名前でかっこいいと...
-
MYSQL PERL からの抽出について
-
一つ前のレコードの値と減算し...
-
クエリ表示と、ADOで抽出したレ...
-
SQL文で、一部一致した列だけ抽出
-
主キーレコードを削除する場合
-
別テーブルからSELECTした値を...
-
複数JOINしているとCOUNTが正し...
-
1テーブル&複数レコードの更新...
-
mysqlで2つのテーブルを使った...
-
HAVING count()で重複したデー...
-
ダイソンのサイクロン掃除機「...
-
別のDB(Table)からの複数行の...
-
MySQL UPDATE SETが失敗なのに...
-
上位3位を求めるSQL文は?
-
ウイルスバスター2005への...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで最後の文字だけ置き...
-
SQL Left Join で重複を排除す...
-
SQLサーバから、項目の属性(型...
-
副問合せの書き方について
-
VIEWの元のテーブルのindexって...
-
エクセルの関数について教えて...
-
SQLにて特定の文字を除いた検索...
-
マイクラPC版のコマンドで効率...
-
select文のwhere句に配列を入れ...
-
sqlで、600行あるテーブルを100...
-
ある条件の最大値+1を初番する...
-
Unionした最後にGROUP BYを追加...
-
inner joinをすると数がおかし...
-
期間の重複を調べるSQL文につい...
-
クエリ表示と、ADOで抽出したレ...
-
Access パラメータクエリをcsv...
-
PL/SQLの変数について
-
MySQLのDATE型カラム値がNULLの...
-
php+mysqlで複数選択削除について
-
上位3位を求めるSQL文は?
おすすめ情報