Nebudete schopni provádět přesné úpravy pomocí SQL. Potřebujete algoritmus, jako je Unix diff
na souborech (což funguje na úrovni řádku). Na úrovni postavy by byl algoritmus určitou variací Levenshteinovy vzdálenosti
. Pokud diff
vyhovuje vašim potřebám, můžete si jej stáhnout, napsat uloženou proceduru pro jeho vyvolání a poté ji použít v databázi. To by bylo poměrně drahé.
Část vaší otázky týkající se údržby různých verzí je mnohem jednodušší. Přidal bych dva sloupce EffDate
a EndDate
na každý záznam. Nejnovější verzi získáte vyhledáním EndDate is NULL
a najít verzi aktivní v danou chvíli. Merge
je obecně užitečné pro údržbu takové tabulky.