Я изменяю структуру базы данных. Содержимое нескольких столбцов таблицы FinancialInstitution должно быть перенесено в таблицу Person . FinancialInstitution связано с лицом с внешним ключом. Каждому финансовому учреждению необходим идентификатор соответствующего лица. Таким образом, для каждой новой строки, вставленной в Person, идентификатор этой новой строки (IDENTITY) должен быть скопирован обратно в соответствующую строку FinancialInstitution.
Очевидный способ сделать это - итеративный код T-SQL. Но мне интересно знать, возможно ли это сделать только с помощью операций на основе множеств.
Я предполагал, что внутренний уровень такого запроса будет примерно таким:
INSERT INTO Person (Street1, Number1, City1, State1, PostCode1, CountryId1, WorkDirectPhone1, Fax1, Email1)
OUTPUT inserted.Id, FinancialInstitution.Id
SELECT Id, Street, Number, City, [State], PostCode, CountryId, PhoneNumber, Fax, Email
FROM FinancialInstitution;
К сожалению, кажется, что ВЫХОД не может соотноситься таким образом ...
Person
? Или обновить существующие? Или ты хочешь вставитьPerson
и потомUPDATE FinancialInstitution
?