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

时间:2012-05-24 16:06:26

标签: sql-server-2008 tsql cursor

我在Ms Sql Server(TSQL)中遇到更新问题 假设我有一个描述 ID 字段,并使用此值将1000记录插入此表

  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 @Counter=@Counter+1
      end

2 个答案:

答案 0 :(得分:2)

不需要cursor,只需一个简单的update

update Person
set Description = "Description" + convert(varchar(10), ID)

答案 1 :(得分:1)

UPDATE  Person
SET     Discription = SPACE(Z.n)+ Z.Discription
FROM (  SELECT  ID, 
                Description , 
                ROW_NUMBER() OVER (ORDER BY ID)n
        FROM Person
    )Z