我正在尝试根据该列中的最后一个 ID 向该列提供 ID 号。
编辑:我知道有更好的方法。我们无法更改此表以使用正确排序的列,因此我们必须在查询中提供数字。
例如,我可以使用此查询来获取我的最后一个 ID:
SELECT MAX(ID)
FROM TABLE
结果:
16684
如果我在查询中使用 + 1,那么我会得到下一个 ID 的起始编号:
SELECT MAX(ID) + 1
FROM TABLE
结果:
16685
我需要能够将其添加到 INSERT INT0/SELECT 语句中,以便我从结果数字开始并继续提供的每行计数。
例如:
-- I know this doesn't work I do not know what would here.
Select ID (16685), * FROM QUERY RESULTS
结果如下:
16685, Data, Data, Data
16686, Data, Data, Data
16687, Data, Data, Data
16688, Data, Data, Data
16689, Data, Data, Data
...
我不确定如何提供这个值。
有问题的列是 SUDO ID 列,未正确设置为自行递增,因此我们必须自己提供数字。
请注意,每天只会有一次插入,我们并不担心同时发生并发插入。
最佳答案
DECLARE @MaxId INT
SELECT @MaxId = MAX(Id)
FROM MyTable
-- in order by you can set every you want
SELECT @MaxId + ROW_NUMBER() OVER(ORDER BY (SELECT 0)) AS LastId
FROM MyTable
/*
I think it is what you want
*/
关于SQL Server 根据定义的起始值开始每行计数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72520347/