更新许多记录。我应该使用光标吗?

i have a problem with Update in Ms Sql Server(TSQL)
suppose that i have a table Person with Description and ID fields and inserted 1000 record to this table with this value

  1      Descript1
  2      Descript2
  3      Descript3
  ..       ......
  ..      ......
  1000   Descript1000

我怎样才能改变这1000条记录相同的下面的记录

1   Description1
2    Description2
3     Description3
......
......
1000      Description1000

我应该使用游标吗? 我写了这个查询,但它不起作用

    while @Counter<=1000000
      begin
          update Person set Description='Descripton'+CONVERT(nvarchar(15),@Counter) where ID>=1
     set @[email protected]+1
      end
0
额外 编辑
意见: 1
以基于集合的方式运行查询比逐行更快(例如while循环,游标等)。
额外 作者 Bridge,

2 答案

没有 cursor 需要,只需一个简单的 update

update Person
set Description = "Description" + convert(varchar(10), ID)
0
额外
@SalahSanjabian如果它的工作,你应该接受的答案: meta.stackexchange.com/questions/5234/…
额外 作者 aF.,
@AaronBertrand确实,10应该绰绰有余。
额外 作者 aF.,
非常感谢您的回答 aF
额外 作者 Salah Sanjabian,
convert(varchar without length?我不推荐它。 sqlblog.com/blogs/aaron_bertrand/archive/2009/10/09/…
额外 作者 Aaron Bertrand,
UPDATE  Person
SET     Discription = SPACE(Z.n)+ Z.Discription
FROM (  SELECT  ID, 
                Description , 
                ROW_NUMBER() OVER (ORDER BY ID)n
        FROM Person
    )Z
0
额外
感谢您的回答 mehdi lotfi (mamnon agha mehdi)
额外 作者 Salah Sanjabian,