SQL CUT和PASTE到COLUMN

时间:2015-06-16 13:14:24

标签: sql set batch-processing paste

我知道如何将数据从一列复制到另一列:

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&lt;&gt; NULL为false)。

摘要问题:如何使用columnA中的数据更新columnB后将columnA设置为NULL?

1 个答案:

答案 0 :(得分:2)

您可以使用:

UPDATE   TableName
SET      Col2 = Col1,
         Col1 = NULL
WHERE    Col1 IS NOT NULL