Hallo zusammen,
hätte eine Frage an die SQL Server Spezialisten. Und zwar habe ich eine gut gefüllte Adress-Tabelle. Nun möchte ich schnell überprüfen, ob sich etwas an einer speziellen Adresse geändert. Da ich nicht alles Felder überprüfen möchte, wollte ich von ausgewählten Spalten einen gemeinsamen Hash-Wert (MD5) bilden und diesen als zusätzliche Spalte abspeichern. Wenn jetzt neue Daten reinkommen, vergleiche ich einfach die Hash-Werte und gut ist. Aber was für einen Datentyp nehme ich am Besten für die Hash-Werte? Wenn ich ihn als String abspeicher, wird ja intern vom SQL Server wieder ein Hashwert gebildet und das wäre ja doppelt gemoppelt. Kann mir jemand weiterhelfen?
Greetz
Vielleicht als Binärdaten (BLOB) abspeichern. Aber ich denke, das String auch vollkommen okay ist! Ich wüßte nicht, was gegen String sprechen würde...
Hallo phunkydizco,
warum führst Du nicht einfach 2 Felder "OnUpdate" bzw. "OnInsert" ein, die dann mit Zeitstempeln belegt werden. So kannst Du einfach über eine Abfrage herausbekommen, welche Datensätze sich zuletzt geändert haben. Wenn Du es ganz genau haben willst, kannst Du jede Änderung über einen Trigger mitprotokollieren lassen, der die geänderten Datensätze in einer zusätzlichen Tabelle speichert.
Diese Tabelle wird dann mitunter sehr groß und trägt nicht gerade zur Performance bei, kann aber in regelmäßigen Abständen immer wieder gelöscht werden.
Grüße pegasus2
Ne das wird nicht gehen, da die geänderten Adressdaten von Extern kommen und ja nicht weiß ob sie sich geändert haben.
Könnte man diesen MD5-Hash-Wert nicht auch als GUID speichern?
Speicher die Hashs als Strings ab... weiß nicht was für ein Problem du damit hast...