Mar*_*ark 6 sql t-sql sql-server sql-server-2008 sql-update
我有一个带有主键,外键和空序列值的数据集.基于外键向数据添加序列号的最快方法是什么?
QuestionConditionId是我的主键,QuestionId是外键.这是按照订单选择后数据的样子QuestionId:

更新后,我的数据应如下所示:

我可以为此写一个循环,但我希望有更小更高效的东西.有任何想法吗?
WITH T
AS (SELECT *,
ROW_NUMBER() OVER (PARTITION BY QuestionId
ORDER BY QuestionConditionId ) AS RN
FROM YourTable)
UPDATE T
SET Sequence = RN
Run Code Online (Sandbox Code Playgroud)
但是Sequence在插入,更新,删除之后保持此列同步可能比它的价值更麻烦.您也可以使用时间ROW_NUMBER计算SELECT而不是存储它.