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
DataGridViewの内容をDBに反映する時
Visual Basic(VBA)
-
6
<VB.NET>INSERT文でDBにデータを入れたい
Visual Basic(VBA)
-
7
SQLで特定の項目の重複のみを排除した全項目を取得する方法
その他(プログラミング・Web制作)
-
8
データセットのレコード更新がしたい
Visual Basic(VBA)
-
9
DataGridの中身をDataSetにテーブルとして保存する方法 (初心者)
Visual Basic(VBA)
-
10
【VB】コンボボックスにデータベースから取り出した値を入れたい
Visual Basic(VBA)
-
11
SQLサーバから、項目の属性(型)を取得したいのですが・・・
SQL Server
-
12
Accessのテーブルデータを一気にVBAで追加したい・・
その他(データベース)
-
13
Functionで戻り値を複数返す方法
Visual Basic(VBA)
-
14
別フォームから戻ったときのイベント
Visual Basic(VBA)
-
15
SELECT 文 GROUP での1件目を取得
SQL Server
-
16
DataTableに入っているデータを全てinsertしたい!(C#)
Microsoft ASP
-
17
VB.NET DataGridView 縦スクロールバーを常に表示
Visual Basic(VBA)
-
18
SQLの速度をあげるには・・・
Visual Basic(VBA)
-
19
Oracle 8i コンマ(,)を含むデータをinsertしたい
その他(データベース)
-
20
SQL文のCOUNTの戻り値は?
その他(データベース)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで最後の文字だけ置き...
-
Access パラメータクエリをcsv...
-
副問合せの書き方について
-
SQL Left Join で重複を排除す...
-
[MySQL] UNIQUE制約の値を更新...
-
insertを高速化させたい
-
SQLにて特定の文字を除いた検索...
-
select文のwhere句に配列を入れ...
-
VIEWの元のテーブルのindexって...
-
inner joinをすると数がおかし...
-
SQLサーバから、項目の属性(型...
-
WordpressのContact form 7でzi...
-
複数テーブルのGROUP BY の使い...
-
selectした大量データをinsert...
-
”photo id” とは何ぞや?
-
PL/SQLの変数について
-
ローカルルーターモードとは
-
#1136 - Column count doesn't ...
-
Unionした最後にGROUP BYを追加...
-
android studio
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで最後の文字だけ置き...
-
SQL Left Join で重複を排除す...
-
VIEWの元のテーブルのindexって...
-
SQLサーバから、項目の属性(型...
-
select文のwhere句に配列を入れ...
-
副問合せの書き方について
-
マイクラPC版のコマンドで効率...
-
Unionした最後にGROUP BYを追加...
-
selectした大量データをinsert...
-
SQLにて特定の文字を除いた検索...
-
[SQLServer] テーブル名からカ...
-
1テーブル&複数レコードの更新...
-
inner joinをすると数がおかし...
-
クエリ表示と、ADOで抽出したレ...
-
ある条件の最大値+1を初番する...
-
sqlで、600行あるテーブルを100...
-
複数テーブルのGROUP BY の使い...
-
insertを高速化させたい
-
PL/SQLの変数について
-
キー毎の、ある列のmaxのレコー...
おすすめ情報