Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Wie kann ich den Wert für jede INSERT INTO-Iteration erhöhen?

Verwenden Sie row_number Funktion, um Ihren Zeilen fortlaufende Nummern zu geben

insert into Table1 (column1,column2)
select 
    (select max(column1) from Table1) + row_number() over (order by T2.anotherColumn),
    T2.anotherColumn
from Table2 as T2

oder sicherere Version (es würde auch funktionieren, wenn Sie keine Zeilen in Tabelle1 haben):

insert into Table1 (column1,column2)
select 
    isnull(T1.m, 0) + row_number() over (order by T2.anotherColumn),
    T2.anotherColumn
from Table2 as T2
    outer apply (select max(column) as m from Table1) as T1