Я хотел бы иметь возможность вставлять некоторые значения в таблицу с помощью одного оператора INSERT, но у меня возникают проблемы с определением наилучшего способа. Данные, которые я вставляю, являются загрузочными (или жестко закодированными) данными, т.е. недоступны в другой таблице. Вот что я пробовал до сих пор.Группировка значений для INSERTION в таблице
create table #t (id int)
insert into #t values (1) --- (a)
insert into #t values (5) --- (a)
insert into #t values ((5), (3), (22)) --- (b)
insert into #t --- (c)
select 3 union all
select 5 union all
select 6 union all
select 8
Код в (a) отлично работает, но добавляет только одно значение для каждой вставки.
Код в (b) представляется логическим расширением (a) для меня (по крайней мере, когда я думаю об инициализаторах из Perl или Java), но не работает.
Код на (c) работает и, вероятно, является скорее способом SQL, но кажется многословным.
Существует ли вариант (б), который работает? Или существует подход, подобный (c), который требует меньше набора текста?
Я использую SQL Server 2000, но меня интересует что-то довольно портативное, если это возможно.
ОБНОВЛЕНИЕ: Спасибо каждому, кто ответил. Таким образом, кажется, что в стандарте SQL есть многопользовательская вставка, что и было, но не поддерживается в моей среде. Поэтому я буду придерживаться (а) для простоты и ясности.
Можете ли вы рассказать нам о причинах вставки таким образом, может быть лучшее решение, чем использование вставки. –