【发布时间】:2015-06-16 13:14:24
【问题描述】:
我知道如何将数据从一列复制到另一列:
UPDATE table SET columnB = columnA
这很酷,但我想批量处理这个命令(我知道怎么做),因为我需要更新几(160)百万条记录。问题是,如果我选择 TOP(1000)(每批),则无法知道我处理了前 1000 个(删除时,TOP(1000) 将不断变化,因为您删除了它们,所以有一个新的每次都顶)。我无法使用简单的 WHERE 子句来处理这个问题,因为 columnB 中的值范围从真值到“NULL”到“0”,A 列也是如此。
所以基本上,我想浏览每条记录,检查 columnA 有点像:
WHERE columnA <> NULL
然后用这个columnA数据设置columnB,然后以某种方式将columnA设置为NULL,所以下一批将跳过这条记录(因为columnA NULL是false)。
总结问题:如何在使用 columnA 中的数据更新 columnB 后将 columnA 设置为 NULL?
【问题讨论】:
-
记录上是否有任何类型的标识符可用于分批?或者至少是一个分散的列,您可以按(名称等)排序?
标签: sql set batch-processing paste