Как вставить результат запроса в две связанные таблицы?
Для одной записи я могу получить последний id через scope_identity() . Но мне нужно вставить записи из одной большой таблицы в две другие — как можно поступить в этом случае?
К примеру, в одной базе есть таблица CLIENTS, в другой — CLIENTS_DATA и REQUISITES. В первой (CLIENTS_DATA), к примеру, есть поля CLIENT_ID, NAME, ADDRESS, PHONE, а во второй — REQUISITE_ID,CLIENT_ID, INN, KPP, BANK, BANK_ACCOUNT и т.д. Одну запись из первой базы во вторую я могу вставить через
insert base2.dbo.CLIENTS_DATA
select top 1 NAME, ADDRESS, PHONE … from base1.dbo.CLIENTS
declare @IDENTITY int = scope_identity()
insert base2.dbo.CLIENTS_REQUISITES
select @IDENTITY, INN, KPP, BANK, BANK_ACCOUNT … from base1.dbo.CLIENTS
Как мне сделать то же самое, чтобы перенести все строки из таблицы CLIENTS базы base1 в таблицы CLIENTS_DATA и CLIENTS_REQUISITES базы base2? Можно это сделать через цикл while, но это же медленно, неужели нет варианта получить список IDENTITY из CLIENTS_DATA, сопоставленный со строками таблицы CLIENTS?