我知道如何将数据从一列复制到另一列:
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?
答案 0 :(得分:2)
您可以使用:
UPDATE TableName
SET Col2 = Col1,
Col1 = NULL
WHERE Col1 IS NOT NULL