Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL剪切并粘贴到列_Sql_Set_Batch Processing_Paste - Fatal编程技术网

SQL剪切并粘贴到列

SQL剪切并粘贴到列,sql,set,batch-processing,paste,Sql,Set,Batch Processing,Paste,我知道如何将数据从一列复制到另一列: UPDATE table SET columnB = columnA 这很酷,但我想批处理这个命令(我知道怎么做),因为我需要更新几(1.6)亿条记录。问题是,如果我选择顶部(1000)(每批),就无法知道我处理了前1000个(使用delete,顶部(1000)将不断变化,因为您删除了它们,所以每次都有一个新的顶部)。我不能用一个简单的WHERE子句来处理这个问题,因为columnB中的值的范围是从true值到'NULL'到'0',而a列也是如此 所以基本

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

UPDATE table SET columnB = columnA
这很酷,但我想批处理这个命令(我知道怎么做),因为我需要更新几(1.6)亿条记录。问题是,如果我选择顶部(1000)(每批),就无法知道我处理了前1000个(使用delete,顶部(1000)将不断变化,因为您删除了它们,所以每次都有一个新的顶部)。我不能用一个简单的WHERE子句来处理这个问题,因为columnB中的值的范围是从true值到'NULL'到'0',而a列也是如此

所以基本上,我想浏览每一条记录,检查一下A列,有点像:

WHERE columnA <> NULL
其中column为空
然后使用此columnA数据设置columnB,然后以某种方式将columnA设置为NULL,这样下一批将跳过此记录(因为columnA NULL为false)

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

您可以使用:

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

记录上是否有任何类型的标识符可用于分批处理?或者至少是一个你可以按(名字等)排序的分散列?真的那么简单吗?谢谢!