【发布时间】:2012-01-29 18:17:13
【问题描述】:
假设我有数千行要更新。
我计划迭代地进行更新;每次迭代只更新 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 次,我只是想知道为什么?
-
我以数字为例,但原因是为了防止事务超时。次要原因是:对实现的好奇。
标签: sql sql-server tsql dynamic-sql