循环遍历表并设置列的值

时间:2011-07-28 17:38:11

标签: sql sql-server-2008 stored-procedures sql-update

人们......

我是一个完整的SQL Server新手并且有以下问题。我需要迭代一个表并更新一列。在此列中,我想设置一个Integer值。在下一行中,我想为值添加1。这样列列看起来像这样:

1
2
3
4
5
6
7
8
9个

最简单的方法是什么?

谢谢! :-)

3 个答案:

答案 0 :(得分:2)

你在找这样的东西吗?

UPDATE YourTable
    SET YourColumn = YourColumn + 1

答案 1 :(得分:0)

首先,您需要了解SQL和基于集合的操作。您不会遍历表,而是一次更新信息集。

如果您只需要一个序号,您可以这样做:

with cte as (select primarykey, row_number() over (order by primarykey) rn from yourtable)
update yourtable 
set yourcol = rn 
from yourtable 
join cte on yourtable.pk = cte.primarykey

但在尝试编写高级查询之前,您应该真正了解基础知识。如果你不得不问如何(或者你可以)迭代一个表,你可能不应该这样做。

答案 2 :(得分:0)

如果你需要实际循环(不确定你真的这样做),这里有一个关于如何一次1行的链接。第二部分将指导您创建WHILE循环:

SQL Loop