我有一个数据库暂存表,用于存储来自另一个系统的数据,然后再使用它填充多个数据库表。
我所依赖的是数据中的“主键”是唯一的,但事实证明它们根本不是唯一的,例如键"1“可以应用于”值A“和”值B“,因此它显然不是主键!
,因为我不再信任我想要根据暂存表的内容生成自己的键的数据。例如,对于“A列”,我希望根据该列中的不同值生成一个基于唯一整数的键。这可以通过更新集或另一种机制实现吗?
发布于 2011-12-28 16:50:28
我希望根据列中的不同值生成一个基于唯一整数的键。
可以使用dense_rank()和CTE对行进行编号。
;with C as
(
select ID,
dense_rank() over(order by ColumnA) as rn
from YourTable
)
update C
set ID = rn发布于 2011-12-28 16:24:23
出于好奇,为什么不根据行号生成一个唯一的键,或者滚动您自己的身份-esque列?
https://stackoverflow.com/questions/8658423
复制相似问题