Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Obtendo os dados editados exatos do SQL Server


Você não poderá fazer a edição exata usando SQL. Você precisa de um algoritmo como o Unix diff em arquivos (que funciona no nível da linha). No nível do caractere, o algoritmo seria alguma variação da distância de Levenshtein . Se diff atende às suas necessidades, você pode baixá-lo, escrever um procedimento armazenado para chamá-lo e usá-lo no banco de dados. Isso seria bastante caro.

A parte da sua questão de manter as diferentes versões é muito mais fácil. Eu adicionaria duas colunas EffDate e EndDate em cada registro. Você pode obter a versão mais recente procurando por EndDate is NULL e encontre a versão ativa a qualquer momento. Merge geralmente é útil para manter essa tabela.