如何更新表中的所有行并增加列?

时间:2012-07-31 14:40:38

标签: sql sql-server sql-server-2008 sql-server-2005 sql-update

我在SQL Server 2008数据库中有一个表。我需要更新特定列的值,但同时增加它的值。解释:

如果表格是:

CREATE TABLE [dbo].[Player]
(
    [PlayerID] [uniqueidentifier] NOT NULL,
    [UnitID] [uniqueidentifier] NULL,
    [ExerciseID] [uniqueidentifier] NOT NULL,
    [Designation] [nvarchar](256) NOT NULL
)

我想浏览ExerciseID 42C45D73-3FE6-4AFA-8E2F-09BDFC6CBDF7 Designation的所有行,并将Player - X更新为Player - 1,但X应从1开始,并自行增加1每次。

因此,第一个要更新的玩家将是Player - 2,第二个将是{{1}},依此类推。

我不知道从哪里开始这样的事情!

由于

1 个答案:

答案 0 :(得分:7)

; with numbering as (
  select PlayerID,
         UnitID,
         ExerciseID,
         Designation,
         row_number () over (order by PlayerID) - 1 rn
    from Player
   where ExerciseID = '42C45D73-3FE6-4AFA-8E2F-09BDFC6CBDF7'
)
update numbering
   set Designation = 'Player - ' + convert(varchar(10), rn)