2014-05-22 21 views
0

我有一組值的變量表@vartableSQL服務器 - 插入使用多個值

id 
34 
235 
34634 
3643536 
23 
234 

然後我想要做下列插入 - 每個ID

insert into tableA 
values ((select max(tableA_id)+1 from tableA), 2147, (select id from @vartable), 1, 0, 0) 

所以在@vartable中,它使用行上的id進行插入。

我該如何解決這個問題?

編輯注意我需要更新第一個值(從tableA中選擇max(tableA_id)+1),每增加一個新插入的行就增加1。

回答

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 
+0

關閉查詢。不幸的是,它所做的就是將所有值賦給相同的第一個數字(從tableA中選擇max(tableA_id)+1)。我需要這個數字增加1,每插入一個新行。 – whoisearth