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