Je modifie la structure d'une base de données. Le contenu de plusieurs colonnes du tableau FinancialInstitution doit être transféré dans le tableau Personne . FinancialInstitution est lié à la personne avec une clé étrangère. Chaque institution financière a besoin de l'ID de sa personne correspondante. Ainsi, pour chaque nouvelle ligne insérée dans Person, l'ID de cette nouvelle ligne (IDENTITY) doit être recopié dans la ligne correspondante de FinancialInstitution.
La façon évidente de le faire est un code T-SQL itératif. Mais je suis intéressé de savoir s'il est possible de le faire uniquement avec des opérations basées sur des ensembles.
J'ai imaginé que le niveau interne d'une telle demande serait quelque chose comme:
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;
Malheureusement, il semble que OUTPUT ne puisse pas être corrélé de cette façon ...
Person
? Ou mettre à jour ceux existants? Ou voulez-vous insérer dansPerson
et ensuiteUPDATE FinancialInstitution
?