Esiste un modo in SQL Server 2012 per generare un hash di un set di righe e colonne?Generare un hash per un set di righe nel server sql
Voglio generare un hash, memorizzarlo nel record padre. Quando arriva un aggiornamento, confronterò l'hash in arrivo con l'hash del record padre e saprò se i dati sono cambiati.
Quindi qualcosa di simile sarebbe bello:
SELECT GENERATEHASH(CONCATENATE(Name, Description, AnotherColumn))
FROM MyChildTable WHERE ParentId = 2 -- subset of data belong to parent record 2
"concatenate" sarebbe una funzione di aggregazione che non solo concat le colonne, ma anche, le righe all'interno del gruppo di risultati. Come MAX, ma restituire tutto come una concatenazione di stringhe.
Speriamo che questo ti aiuti a vedere cosa intendo comunque!
Il problema fondamentale che sto cercando di risolvere è che il sistema del mio cliente esegue importazioni di grandi quantità di dati gerarchici. Se riesco a evitare l'elaborazione tramite l'uso degli hash, allora penserei che questo risparmierà molto tempo. Al momento, l'SP sta rallentando del 300% quando si devono elaborare dati duplicati.
Grazie
Sfortunatamente CHECKSUM ha conosciuto punti deboli (cioè collisioni pratiche). Per esempio. tipo decimale http://sqlserverpains.blogspot.com.au/2008/06/checksum-pains.html quindi fai attenzione. – Shiv