Salvando histórico de alterações para campo XML no SQL Server 2008
-
03-07-2019 - |
Pergunta
Eu tenho trabalhado em várias aplicações que salvaram dados XML em um banco de dados. Até à data todos eles simplesmente substituiu o conteúdo XML atuais com o novo conteúdo XML.
Gostaria de salvar as alterações para o XML para o banco de dados, mas não substituir o que está atualmente no DB.
curta de apenas criar novas linhas para mudanças e deixando as linhas antigas intactas, que outras opções que eu poderia usar?
Já pensou em apenas salvando as diferenças como as diferenças no texto reais, o que nem sempre funciona para XML.
nozes Am I para mesmo querendo isso?
Solução
Você pode querer considerar a adição de uma tabela de auditoria para se sentar ao lado de sua tabela de dados.
Ele teria apenas as colunas que você está interessado em acompanhar a história da juntamente com uma coluna de data e hora (para registrar a data da mudança) e, normalmente, você quer alguma informação do utilizador, bem como (ou seja, puxar o usuário conectado a partir da conexão ou fornecer um nome de usuário em seu insert / update).
Em seguida, criar um disparador de atualização na sua tabela de dados e inserir novas linhas em sua tabela de auditoria da mesa pseudo excluído. Este conterá os dados antes de uma atualização se você estiver executando uma atualização desde uma atualização é realmente uma exclusão e uma inserção.
Há também esta solução objectivo mais geral que propõe a utilização de SQL CLR para longe abstrato implementação de uma tabela de auditoria única e gatilho para cada tabela de dados que você deseja auditoria: http://www.sqljunkies.ddj.com/Article/4CD01686-5178-490C-A90A-5AEEF5E35915.scuk