3

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

如果表是:

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

我想遍历具有ExerciseIDof 的每一行并将其42C45D73-3FE6-4AFA-8E2F-09BDFC6CBDF7更新为DesignationPlayer - X但 X 应该从 1 开始并且每次都将自身递增一。

所以第一个被更新的玩家将是Player - 1第二个被更新的玩家Player - 2,依此类推。

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

谢谢

4

1 回答 1

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)
于 2012-07-31T14:48:03.403 回答