我在变量表@vartable
中有一组值id
34
235
34634
3643536
23
234
然后我想做以下插入 -
insert into tableA
values ((select max(tableA_id)+1 from tableA), 2147, (select id from @vartable), 1, 0, 0)
因此对于@vartable中的每个id,它使用行上的id进行插入。
我该怎么做?
编辑注意我需要更新第一个值(从tableA中选择max(tableA_id)+1),并将其插入的每个新行增加1。
答案 0 :(得分:2)
insert into tableA (ColName1,ColName2,ColName3,ColName4,ColName5,ColName6)
Select (select max(tableA_id)+1 from tableA), 2147, id , 1, 0, 0
from @vartable
如果您需要增加最大数字,请使用以下使用ROW_NUMBER
的查询 Insert into tableA (ColName1,ColName2,ColName3,ColName4,ColName5,ColName6)
Select (ROW_NUMBER()
OVER (ORDER BY Id)+(select max(tableA_id) from tableA) )as aRow,
2147, id , 1, 0, 0
From @vartable
Here is fiddle link -- > http://sqlfiddle.com/#!3/cb04f/1