在缺少标识列的现有 table 中进行多次插入

Multiple insert in already existing table with missing identity column

在 SQL 服务器中,我试图将 375 行插入到已经存在的 table 中。

table 没有标识列,但 ID 列是唯一的,我想为每 375 行输入唯一的 ID。我尝试做 max(id)+1 但对于所有 375 行,它插入了相同的 ID 并且数据被弄乱了。我无法更改 id 列,因为 table 有超过百万行。

代码如下:

declare @id int

set @id = select max(id) from tablename;

Insert into tablename (id, column 1, column 2, column 3, ..... column 20)
    select @id + 1, column1, column2, column 3, ........, column 20
    from tablename1
    where column15 IN (1,2,3,4,.........,375)

使用 row_number.

怎么样?
declare @id int

set @id = (select max(id) from tablename)

Insert into tablename (id, column 1, column 2, column 3, ..... column 20)

select
    row_number() over (order by (select null)) + @id,
    column1, 
    column2, 
    column 3, 
    ........, 
    column 20
from tablename1