![](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
<VB.NET>INSERT文でDBにデータを入れたい
Visual Basic(VBA)
-
6
データセットのレコード更新がしたい
Visual Basic(VBA)
-
7
DataGridViewの内容をDBに反映する時
Visual Basic(VBA)
-
8
DataTableに入っているデータを全てinsertしたい!(C#)
Microsoft ASP
-
9
【VB】コンボボックスにデータベースから取り出した値を入れたい
Visual Basic(VBA)
-
10
VB.NETでコンボボックスの1行目を空白にしたい
Visual Basic(VBA)
-
11
別フォームから戻ったときのイベント
Visual Basic(VBA)
-
12
VB.NET DataGridView 縦スクロールバーを常に表示
Visual Basic(VBA)
-
13
データベースのデータをTextBoxに入力された値で検索しDataGridViewに表示する方法
Visual Basic(VBA)
-
14
VB.NETでDataTableにデータ追加したい
Visual Basic(VBA)
-
15
テキストボックスの中身をリセット(クリア)したい
Visual Basic(VBA)
-
16
コントロールを移動できない
Visual Basic(VBA)
-
17
SQL文のCOUNTの戻り値は?
その他(データベース)
-
18
SQLで複数のテーブルと結合したUPDATE文
Visual Basic(VBA)
-
19
VB6.0の「vbFromUnicode」はVB.NETではどれに相当しますか?
Visual Basic(VBA)
-
20
オラクルのUPDATEで複数テーブル
Oracle
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで最後の文字だけ置き...
-
エクセルの関数について教えて...
-
select文のwhere句に配列を入れ...
-
SQLサーバから、項目の属性(型...
-
副問合せの書き方について
-
LEFT JOIN と GROUP BY
-
SQL Left Join で重複を排除す...
-
バインド変数について
-
1テーブル&複数レコードの更新...
-
SQLにて特定の文字を除いた検索...
-
キー毎の、ある列のmaxのレコー...
-
VIEWの元のテーブルのindexって...
-
mysqlのload data infileで連番...
-
inner joinをすると数がおかし...
-
insertを高速化させたい
-
SELECT句の指定フィールドに固...
-
親と子供が複数のSQL取得方法
-
android studio
-
ストアドのエラーについて
-
OracleでINSERT文のループ
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで最後の文字だけ置き...
-
SQL Left Join で重複を排除す...
-
SQLサーバから、項目の属性(型...
-
副問合せの書き方について
-
VIEWの元のテーブルのindexって...
-
エクセルの関数について教えて...
-
SQLにて特定の文字を除いた検索...
-
マイクラPC版のコマンドで効率...
-
select文のwhere句に配列を入れ...
-
sqlで、600行あるテーブルを100...
-
ある条件の最大値+1を初番する...
-
inner joinをすると数がおかし...
-
Unionした最後にGROUP BYを追加...
-
期間の重複を調べるSQL文につい...
-
クエリ表示と、ADOで抽出したレ...
-
Access パラメータクエリをcsv...
-
PL/SQLの変数について
-
MySQLのDATE型カラム値がNULLの...
-
php+mysqlで複数選択削除について
-
上位3位を求めるSQL文は?
おすすめ情報