Sto modificando la struttura di un database. Il contenuto di più colonne della tabella FinancialInstitution deve essere trasferito nella tabella Person . FinancialInstitution è collegato a Persona con una chiave esterna. Ogni istituto finanziario necessita dell'ID della persona corrispondente. Pertanto, per ogni nuova riga inserita in Persona, l'ID di questa nuova riga (IDENTITÀ) deve essere copiato nuovamente nella riga corrispondente di FinancialInstitution.
Il modo ovvio per farlo è un codice T-SQL iterativo. Ma sono interessato a sapere se è possibile farlo solo con operazioni basate su set.
Ho immaginato che il livello interno di una tale richiesta sarebbe stato qualcosa del tipo:
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;
Sfortunatamente, sembra che OUTPUT non possa essere correlato in questo modo ...
Person
? O aggiorni quelli esistenti? O vuoi inserire inPerson
e poiUPDATE FinancialInstitution
?