当需要更新表中的数据或像表中插入数据时,在很多情况下需要产生唯一的整数序列键
一:更新列的值为唯一值
原数据如下图:
可以定义一个CTE,返回orerid列的值以及row_number()的计算结果。如果行号没有排序要求,可以在窗口排序子句中使用(select null),然后再针对CTE的外部查询中,使用update语句来设置orderid为row_number()的计算结果。
with C as ( select orderid,ROW_NUMBER() over(order by (select null)) as rownum from Sales.MyOrders ) update C set orderid=rownum
二:数字序列的应用