вставить много строк с одним статическим полем и полями, выбранными из другой таблицы - PullRequest
0 голосов
/ 04 марта 2010

что я пытаюсь сделать, это:

INSERT INTO Table1 (id1, id2)
(
    SELECT id, 1 as id2 FROM Table2
)

за исключением того, что я НЕ МОЖУ поставить '1 как id2' ​​внутри этого оператора выбора.

Итак, в качестве примера, я хочу вот это:

INSERT INTO Table1 (id1, id2 = 1)
(
    SELECT id FROM Table2
)

Я помещаю это в сохраненный процесс, и оператор выбора генерируется linq2sql (передается как текстовая переменная). Я был бы рад каким-то образом вставить это 'id2' в текст команды linq2sql, однако созданный sql (правильно) только когда-либо помещает в запрос фактические столбцы Table2 (будучи просто 'id1').

и я действительно не хочу делать форматирование строки, чтобы вставить текст ', 1 как id2' ​​в текст команды sql ..

также я не могу оставить id2 равным нулю, так как у него есть ограничение FK.

Ответы [ 3 ]

0 голосов
/ 04 марта 2010

хорошо, понял:

create table #tmp
( id1 int)

insert into #tmp (id1)
(
    select top 10 id1 from Table1
)

insert into Table2 (id1, id2) 
(
    select id1, 5 from #tmp
)

drop table #tmp
0 голосов
/ 04 марта 2010

Вы можете использовать свой собственный sql с незначительным редактированием.

INSERT INTO Table1 (id1, id2)
(
    SELECT id, 1 FROM Table2
)
0 голосов
/ 04 марта 2010
INSERT INTO Table1 (id1, id2) SELECT id, 1 as id2 FROM Table2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...