Neste cenário, pretendemos recuperar um XML contendo apenas os valores de coluna modificados ao executar uma atualização em um tatidado em um SQ Somb. Esta informação é crucial para fins de replicação de dados. No entanto, essa abordagem pode ser tediosa se a tabela tiver um grande número de colunas. Ao ingressar nessas duas tabelas, é possível identificar quaisquer linhas em que o FieldValue mudou, dando -nos os valores modificados. COMEÇAR Definir nocorre em; - Não excluído Com deleted_unpvt como ( Selecione ContactId, FieldName, FieldValue De (selecione contactId, curename, sobrenome, extn, e -mail, idade de exclusão) p Unpivot (FieldValue para FieldName In (Forename, Sobrenome, Extn, Email, Age)) como Deleted_Unpvt ), - Não inserido insered_unpvt como ( Selecione ContactId, FieldName, FieldValue De (selecione contactId, curename, sobrenome, extn, e -mail, idade de inserido) p Unpivot (FieldValue para FieldName In (Forename, Sobrenome, Extn, Email, Age)) como Inserd_Unpvt ) - Junte-se a eles e identifique mudanças Inserir em sample_table_changes (contactId, fieldname, fieldvaluewas, fieldvalueis) Selecione Coalesce (D.Contactid, i.Contactid) ContactId, Coalesce (D.FieldName, I.FieldName) FieldName, D.FieldValue como FieldValuewas, I.FieldValue como FieldValueis De deleted_unpvt d Junção externa completa inserd_unpvt i Em D.ContactId = i.ContactId e D.FieldName = i.FieldName Onde D.FieldValue I.FieldValue Ou (D.FieldValue não é nulo e I.FieldValue é nulo) Ou (D.FieldValue é nulo e I.FieldValue não é nulo); - Use o conteúdo de sample_table_changes para replicação FIM GO
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3