CHECKSUM和CHECKSUM_AGG:算法是什么?

spe*_*der 4 sql-server checksum sql-server-2008

我们在sql server中执行一些数据的校​​验和,如下所示:

declare @cs int;
select 
    @cs = CHECKSUM_AGG(CHECKSUM(someid, position))
from 
    SomeTable
where 
    userid = @userId
group by 
    userid;
Run Code Online (Sandbox Code Playgroud)

然后,这些数据与客户共享.我们希望能够在客户端重复校验和...但是似乎没有关于如何计算上述函数中的校验和的任何信息.任何人都可以开导我吗?

Dan*_*Dan 7

在SQL Server论坛上,在此页面上说明:

SQL Server中的内置CHECKSUM函数基于一系列4位左旋转xor运算.有关 更多说明,请参阅此帖子.


nvo*_*gel 6

CHECKSUM 函数不提供非常好的质量校验和,并且 IMO 对于大多数用途来说几乎没有用处。据我所知,该算法尚未发布。如果您想要一个可以自己重现的检查,请使用 HashBytes 函数和标准的已发布算法之一,例如 MD5 或 SHA。