Мне нужно вставить несколько строк одновременно в SQL Server .. на основе итеративного значения - PullRequest
0 голосов
/ 11 мая 2010

Я хочу вставлять 3 строки за раз в таблицу на основе оператора select ..

рассмотрим запрос

insert into tblTemp 
(
a,b
)

select a, b from tblTemp2

Это позволяет мне вставить одну строку в tblTemp ..

Мое требование - добавить 3 строки с итерационными значениями a, a + 1, a + 2 для каждого вставленного b.

Ответы [ 4 ]

4 голосов
/ 11 мая 2010

Используйте перекрестное соединение для генерации дополнительных строк (через декартово произведение) вместо трехкратного запроса tblTemp2 с помощью UNION ALL

insert into tblTemp (a, b)
select a + offset, b
from
  tblTemp2
  cross join
  (SELECT 0 AS offset UNION ALL SELECT 1 UNION ALL SELECT 2) foo
1 голос
/ 11 мая 2010
Insert Into tblTemp (a,b)
SELECT T.a + T1.Num , T.B
FROM 
tblTemp2 T
CROSS JOIN
(
 SELECT 0 as Num
 UNION ALL
 SELECT 1 as Num
 UNION ALL
 SELECT 2 as Num 
) T1
1 голос
/ 11 мая 2010
insert into tblTemp ( a,b )
select a, b from tblTemp2 UNION ALL
select a+1, b from tblTemp2 UNION ALL
select a+2, b from tblTemp2 UNION ALL
0 голосов
/ 11 мая 2010
declare @rbr int
set @rbr=0

while @rbr<3
begin
insert into tblTemp2
select a+@rbr, b from tblTemp2
set @rbr=@rbr+1
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...