sql - SQL 使用自动增量填充,但外键重置已更改
问题描述
嗨,我有这样的表,我必须用自动增量填充列 Test,但是每次 DAId 外键更改时,自动增量必须重置为 1。
我需要 sql 脚本在 .net 核心迁移中执行。
这应该是最终结果。
解决方案
你似乎想要row_number()
:
select id, daid,
row_number() over (partition by daid order by id) as test
from t;
如果要更新值,则语法取决于数据库。“.net”的提及暗示了 SQL Server。如果是这样,那有一个非常方便的功能,称为可更新 CTE:
with toupdate as (
select t.*,
row_number() over (partition by daid order by id) as new_test
from t
)
update toupdate
set test = new_test;