Zmieniam strukturę bazy danych. Zawartość kilku kolumn tabeli FinancialInstitution należy przenieść do tabeli Osoba . FinancialInstitution jest powiązany z osobą posiadającą klucz obcy. Każda instytucja finansowa potrzebuje identyfikatora odpowiedniej osoby. Tak więc, dla każdego nowego wiersza wstawionego w Person, identyfikator tego nowego wiersza (TOŻSAMOŚĆ) musi zostać skopiowany z powrotem do odpowiedniego wiersza FinancialInstitution.
Oczywistym sposobem na to jest iteracyjny kod T-SQL. Ale chcę wiedzieć, czy można to zrobić tylko za pomocą operacji opartych na zestawie.
Wyobrażałem sobie, że wewnętrzny poziom takiego żądania mógłby wyglądać następująco:
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;
Niestety wydaje się, że OUTPUT nie może korelować w ten sposób ...
Person
? Lub zaktualizować istniejące? Albo chcesz wstawićPerson
, a następnieUPDATE FinancialInstitution
?