Có cách nào trong SQL Server 2012 để tạo ra một băm của một tập hợp các hàng và cột không?Tạo một băm cho một tập hợp các hàng trong máy chủ sql
Tôi muốn tạo băm, lưu nó vào bản ghi gốc. Khi cập nhật đến, tôi sẽ so sánh băm đến với băm bản ghi gốc và tôi sẽ biết liệu dữ liệu đã thay đổi hay chưa.
Vì vậy, một cái gì đó như thế này sẽ được tốt đẹp:
SELECT GENERATEHASH(CONCATENATE(Name, Description, AnotherColumn))
FROM MyChildTable WHERE ParentId = 2 -- subset of data belong to parent record 2
"CONCATENATE" sẽ là một chức năng tổng hợp mà sẽ không chỉ concat các cột, nhưng cũng có thể, các hàng bên trong resultset. Giống như MAX, nhưng trả lại mọi thứ dưới dạng chuỗi nối.
Hy vọng điều này giúp bạn hiểu ý tôi là gì!
Vấn đề cơ bản mà tôi đang cố gắng giải quyết là hệ thống của khách hàng của tôi thực hiện nhập một lượng lớn dữ liệu phân cấp. Nếu tôi có thể tránh việc xử lý thông qua việc sử dụng băm, thì tôi nghĩ điều này sẽ tiết kiệm rất nhiều thời gian. Hiện tại, SP đang chạy chậm hơn 300% khi xử lý dữ liệu trùng lặp.
Rất cám ơn
Thật không may CHECKSUM đã biết những điểm yếu (tức là xung đột thực tế). Ví dụ. loại thập phân http://sqlserverpains.blogspot.com.au/2008/06/checksum-pains.html vì vậy hãy cẩn thận. – Shiv