私は更新するために何千もの行があると仮定します。更新が必要な行がなくなるまで動作するUPDATE文にループを作成するにはどうすればよいですか?
私は更新を繰り返し行う予定です。 1回の繰り返しにつき1000行だけを更新します。
更新が残っていない行がなくなるまで繰り返したいと思います。
更新する行がなくなるまで、以下のT-SQLスクリプトを実行するにはどうすればよいですか?
-- TODO: Create a loop so that it exists when there is no ROW left to be updated;
-- how can I do it?
UPDATE tableToUpdate
SET IsVegetable = 1
WHERE Id IN
(SELECT TOP 1000 Id
FROM tableToUpdate
WHERE Date = '2011-07-23 14:00')
-- Loop ends
毎回1000回更新するのはなぜですか?私にとっては、WHERE句を削除すると問題が解決するようです。しかし、あなたは具体的に言うと、あなたはそれを1000時間にしたいと思っています。 – Ruben
例として数字を挙げましたが、理由はトランザクションのタイムアウトを防ぐためです。そして二次的な理由は:実装上の好奇心。 – pencilCake