Estou modificando a estrutura de um banco de dados. O conteúdo de várias colunas da tabela FinancialInstitution deve ser transferido para a tabela Person . A FinancialInstitution está vinculada a Person com uma chave estrangeira. Cada Instituição Financeira precisa do ID da sua Pessoa correspondente. Portanto, para cada nova linha inserida em Pessoa, o ID dessa nova linha (IDENTITY) deve ser copiado novamente na linha correspondente de FinancialInstitution.
A maneira óbvia de fazer isso é um código T-SQL iterativo. Mas estou interessado em saber se é possível fazê-lo apenas com operações baseadas em conjuntos.
Imaginei que o nível interno de uma solicitação desse tipo seria 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;
Infelizmente, parece que OUTPUT não pode se correlacionar dessa maneira ...
Person
? Ou atualizar os existentes? Ou você deseja inserirPerson
e depoisUPDATE FinancialInstitution
?