Ich ändere die Struktur einer Datenbank. Der Inhalt mehrerer Spalten der Tabelle FinancialInstitution muss in die Tabelle Person übertragen werden . FinancialInstitution ist mit einer Person mit einem Fremdschlüssel verknüpft. Jede FinancialInstitution benötigt die ID ihrer entsprechenden Person. Für jede neue Zeile, die in Person eingefügt wird, muss die ID dieser neuen Zeile (IDENTITY) zurück in die entsprechende Zeile von FinancialInstitution kopiert werden.
Die naheliegende Möglichkeit hierfür ist ein iterativer T-SQL-Code. Ich bin jedoch daran interessiert zu wissen, ob dies nur mit satzbasierten Operationen möglich ist.
Ich stellte mir vor, dass die innere Ebene einer solchen Anfrage ungefähr so aussehen würde:
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;
Leider kann OUTPUT nicht auf diese Weise korrelieren ...
Person
? Oder bestehende aktualisieren? Oder möchtest du inPerson
und dann einfügenUPDATE FinancialInstitution
?