SQL Server 2012中是否有任何方法來生成一組行和列的散列?在sql server中爲一組行創建一個散列
我想生成一個散列,將其存儲在父記錄上。更新進來時,我會將傳入的散列與父記錄散列進行比較,然後我會知道數據是否已更改。
因此,像這樣就好了:
SELECT GENERATEHASH(CONCATENATE(Name, Description, AnotherColumn))
FROM MyChildTable WHERE ParentId = 2 -- subset of data belong to parent record 2
「CONCATENATE」將是一個聚合函數,這不僅CONCAT列,而且,在結果集內的行。像MAX一樣,但將所有內容都返回爲字符串連接。
希望這可以幫助你明白我的意思!
我試圖解決的根本問題是我的客戶端系統執行大量分層數據的導入。如果我可以通過使用散列來避免處理,那麼我認爲這將節省大量時間。目前,SP在處理重複數據時運行速度降低了300%。
非常感謝
不幸的是,CHECKSUM已知其弱點(即實際碰撞)。例如。十進制類型http://sqlserverpains.blogspot.com.au/2008/06/checksum-pains.html所以只是要小心。 – Shiv 2015-03-31 05:45:20