Member 13806021 Ответов: 1

Мульти вставка с одинаковым идентификатором


Привет, я пытаюсь сделать несколько вставок с одним и тем же идентификатором. Мне удалось создать параметризованный запрос, который работает, но все еще выглядит довольно уродливо, используя один и тот же параметр (@projekt) дважды. Может кто-нибудь дать мне совет ? Спасибо

Что я уже пробовал:

insert into Forma (formaNazwa, FK_projektId) 
values( 
			@forma1,
			(select projektId from Projekt where projektNazwa = @projekt)
		)
		,
		(
			@forma2,
			(select projektId from Projekt where projektNazwa = @projekt)
		)
;


cmd1.Parameters.AddWithValue("@forma1",TextBoxProjectNameAdd.Text.ToString());
cmd1.Parameters.AddWithValue("@forma2",TextBoxProjectNameAdd1.Text.ToString());
cmd1.Parameters.AddWithValue("@projekt",TextBoxProjectNameAdd2.Text.ToString())

F-ES Sitecore

Google что-то вроде "sql insert with joins", так как было бы лучше присоединиться к таблицам нормально и вставить из результата этих соединений, а не использовать подзапросы, которые вы используете.

jaket-cp

Или вы можете объявить @projektId для хранения projektId и использовать его в качестве вставки для каждой записи

1 Ответов

Рейтинг:
2

Jörgen Andersson

В вашем решении нет ничего плохого.
Но если вы хотите, чтобы он был более "общим", вы можете попробовать это:

insert into Forma (formaNazwa, FK_projektId) 
SELECT  formaNazwa.Value,projektId 
FROM    Projekt
CROSS JOIN (VALUES (@forma1),(@forma2)) AS formaNazwa(Value)
WHERE   projektNazwa = @projekt