Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Abrufen der genauen bearbeiteten Daten von SQL Server

Sie werden nicht in der Lage sein, die genaue Bearbeitung mit SQL durchzuführen. Sie benötigen einen Algorithmus wie den Unix diff auf Dateien (was auf Zeilenebene funktioniert). Auf Zeichenebene wäre der Algorithmus eine Variation der Levenshtein-Distanz . Wenn diff Ihren Anforderungen entspricht, können Sie es herunterladen, eine gespeicherte Prozedur schreiben, um es aufzurufen, und es dann in der Datenbank verwenden. Das wäre ziemlich teuer.

Der Teil Ihrer Frage, die verschiedenen Versionen zu pflegen, ist viel einfacher. Ich würde zwei Spalten EffDate hinzufügen und EndDate auf jeden Datensatz. Sie können die neueste Version abrufen, indem Sie nach EndDate is NULL suchen und finden Sie die Version, die zu einem bestimmten Zeitpunkt aktiv ist. Merge ist im Allgemeinen nützlich, um eine solche Tabelle zu pflegen.