1,用游标
2,SELECT ... ,IDENTITY(int) AS NewIDs INTO #TMP 用临时表,利用产生的从1开始的连续的序号NewIDs作为指针一条条读取
3,自己根具标识列,或者某个不重复的并且可比较大小的字段算号
SELECT ...,(SELECT COUNT(*) FROM tb b WHERE b.id<=a.id) AS NewIDs FROM tb a
这里假设ID为标识列,或值不重复并且可以比较大小. 这样也产生从1开始的连续序号.存为视图或写入临时表或表变量,或用作子查询.
4,自己算当前MIN(ID),一条条计算
选取MIN(ID)且记为CurMinID,读取这条记录,再取当前表中,ID>CurMinID的所有记录中的MIN(ID),将CurMinID更新为你取到的这个新的MIN(id),记取这条记录,循环下去.
5,其它方法不一一列举了