【发布时间】:2009-07-22 20:03:46
【问题描述】:
我想更新一个从 1 开始连续编号的表。更新有一个 where 子句,因此只有满足该子句的结果才会重新编号。我可以在不使用临时表的情况下有效地完成这项工作吗?
【问题讨论】:
-
这很可能取决于您运行的特定 SQL 版本,我认为没有标准的方法可以做到这一点。
-
这个号码有什么用途?你在创建一个ID吗?另外,我不会担心效率低下。如果没有其他信息,听起来您不会因为效率低下而错过某些东西。听起来像是一次性手术。
-
我每周在 2 GB 管道分隔文件中获得 150 万个列表。我需要运行一个存储过程来确定哪些列表在我的客户城市中,给他们客户 ID,并为每个客户按顺序编号。它必须是有效的。
-
现在我明白了你为什么要编号,我提出的解决方案不能满足你的需要。如果同时运行多个更新,您将不会在该更新中获得连续的数字。 +1 to zombat,我已经删除了我的答案。
标签: sql-server tsql