Estoy modificando la estructura de una base de datos. El contenido de varias columnas de la tabla FinancialInstitution debe transferirse a la tabla Persona . La institución financiera está vinculada a la persona con una clave externa. Cada institución financiera necesita la identificación de su persona correspondiente. Por lo tanto, para cada nueva línea insertada en Persona, la identificación de esta nueva línea (IDENTIDAD) debe copiarse nuevamente en la línea correspondiente de FinancialInstitution.
La forma obvia de hacer esto es un código T-SQL iterativo. Pero estoy interesado en saber si es posible hacerlo solo con operaciones basadas en conjuntos.
Imaginé que el nivel interno de tal solicitud sería algo como:
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;
Desafortunadamente, parece que OUTPUT no puede correlacionarse de esa manera ...
Person
? ¿O actualizar las existentes? ¿O quieres insertar enPerson
y luegoUPDATE FinancialInstitution
?