Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Ottenere i dati esatti modificati da SQL Server

Non sarai in grado di eseguire la modifica esatta utilizzando SQL. Hai bisogno di un algoritmo come Unix diff su file (che funziona a livello di linea). A livello di carattere, l'algoritmo sarebbe una variazione della distanza di Levenshtein . Se diff soddisfa le tue esigenze, puoi scaricarlo, scrivere una procedura memorizzata per chiamarlo e quindi utilizzarlo nel database. Sarebbe piuttosto costoso.

La parte della tua domanda sul mantenimento delle diverse versioni è molto più semplice. Aggiungerei due colonne EffDate e EndDate su ogni record. Puoi ottenere la versione più recente cercando EndDate is NULL e trova la versione attiva in qualsiasi momento. Merge è generalmente utile per mantenere tale tabella.