6

我有一个带有主键、外键和空序列值的数据集。根据外键向数据添加序列号的最快方法是什么?

QuestionConditionId是我的主键,QuestionId是外键。这是通过 on 选择 order 后的数据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 回答