У меня есть запрос, который дает результаты из 2 объединенных таблиц: Bands
& Members
Для упрощения: это вывод объединенного запроса :
BandId & memberId
являются столбцами идентификаторов
Я хочу создать запрос оператора insert
, который добавит эти записи, но должен иметьorder + Identity:
insert into bands(band,decade) values('beatles',60)
declare @newBandId int = SCOPE_IDENTITY()
insert into Members (member, age , relatedBandId)
values('john', 40,@newBandId ),
values('paul', 42,@newBandId ),
values('george', 43,@newBandId ),
values('ringo', 40,@newBandId )
insert into bands(band,decade) values('doors',70)
declare @newBandId int = SCOPE_IDENTITY() -- `decalre` again ? error?
insert into Members (member, age , relatedBandId)
values('jim', 50,@newBandId ),
values('john', 60,@newBandId ),
values('ray', 40,@newBandId ),
values('robbie', 20,@newBandId )
Band и Members - это таблицы на сервере 1. Мне нужно сгенерировать данные на сервере 2. (которые также имеют таблицы Band и Members, но с другими данными).Поэтому я хочу создать запрос оператора вставки.
Я не могу выполнить перекрестный запрос базы данных из-за ограничений безопасности orgaization или импорта.
Поэтому я должен создать запрос оператора вставки - который будетпривести к длинному запросу оператора вставки.У меня нет проблем с конкатенацией строк по строкам, просто мне нужно запустить вставку для группы (только один раз), а затем получить идентификатор и только потом запустить 3 вставки для членов.
Вопрос:
Как создать оператор вставки из этого объединенного запроса с помощью этапов, описанных выше?
Fiddle