在Sql Server数据库中,有没有办法检测数据更改,我尝试使用checksum
& checksum_agg
但在单个表上,我想要的是拥有所有表的整个校验和(哈希)
我用于签名表的查询是
select isnull(CHECKSUM_AGG(CHECKSUM(*)),0) from mytable
答案 0 :(得分:1)
听起来你需要INSERT / UPDATE / DELETE触发器。
我不确定这是否有效。随着表的增长,计算将变得更加昂贵。您确定每次数据更改时都需要这样做吗?变更多久一次?每次操作都会浪费很多工作。也许您可以在需要时根据要求而不是每次写入操作来执行此操作。
答案 1 :(得分:1)
您可以使用'SP_MSFOREACHTABLE'命令在所有表中运行循环并汇总总和
答案 2 :(得分:0)
SELECT CHECKSUM_AGG(BINARY_CHECKSUM(*)) as test FROM yor_table_name WITH (NOLOCK);
可以用这段代码检测sql server的变化,这里有一个号码池,每次变化选择一个号码,一个号码不会连续出现两次。