3

SQLServer2008データベースにテーブルがあります。特定の列の値を更新する必要がありますが、同時にその値をインクリメントします。説明する:

テーブルが次の場合:

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

のを含むすべての行を調べて、を更新したいExerciseID42C45D73-3FE6-4AFA-8E2F-09BDFC6CBDF7ですDesignationPlayer - X、Xは1から始まり、毎回1ずつ増加する必要があります。

したがって、更新される最初のプレーヤーPlayer - 1は2番目のプレーヤーになり、以下同様に続き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 に答える