Я змінюю структуру бази даних. Вміст декількох стовпців таблиці Фінансова установа повинен бути переданий у таблицю Особа . Фінансова установа пов'язана з Особою із іноземним ключем. Кожна фінансова установа потребує посвідчення особи відповідної особи. Отже, для кожного нового рядка, вставленого в 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;
На жаль, схоже, що OUTPUT не може співвіднести це…
Person
? Або оновити існуючі? Або ви хочете вставитиPerson
і потімUPDATE FinancialInstitution
?