SQL Server - 插入使用多个值

时间:2014-05-22 14:30:06

标签: sql sql-server

我在变量表@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。

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