6

主キー、外部キー、および空のシーケンス値を持つデータ セットがあります。外部キーに基づいてデータにシーケンス番号を追加する最速の方法は何ですか?

QuestionConditionIdは私の主キーでQuestionIdあり、外部キーです。order by on で選択した後のデータは次のようになりますQuestionId

ここに画像の説明を入力

更新後、データは次のようになります。

ここに画像の説明を入力

このためのループを書くこともできますが、もっと小さくて効率的なものを望んでいます。何か案は?

4

1 に答える 1

9
WITH T
     AS (SELECT *,
                ROW_NUMBER() OVER (PARTITION BY QuestionId 
                                       ORDER BY QuestionConditionId ) AS RN
         FROM   YourTable)
UPDATE T
SET    Sequence = RN 

ただし、挿入、更新、削除後にこの列の同期を維持するSequenceことは、価値があるよりも面倒な場合があります。保存するのではなく、時間でROW_NUMBER計算するために使用することもできます。SELECT

于 2013-01-18T13:01:26.330 に答える