如何在不使用触发器或不以任何方式修改数据库结构的情况下监视SQL Server数据库中对表的更改?我首选的编程环境是.NET和C#。
我希望能够支持任何SQL Server 2000 SP4或更高版本。我的应用程序是另一家公司产品的附加数据可视化。我们的客户群数以千计,因此,我不想在每次安装时都提出要求修改第三方供应商表的要求。
通过“改变到餐桌”我平均变化表数据,而不是更改为表结构。
最终,我希望更改能够触发我的应用程序中的事件,而不是必须间隔检查更改。
根据我的要求(不进行触发器或架构修改,SQL Server 2000和2005),最好的做法似乎是BINARY_CHECKSUM在T-SQL中使用该功能。我计划实现的方式是这样的:
每X秒运行一次以下查询:
SELECT CHECKSUM_AGG(BINARY_CHECKSUM(*))
FROM sample_table
WITH (NOLOCK);
并将其与储值进行比较。如果值已更改,请使用查询逐行浏览表:
SELECT row_id, BINARY_CHECKSUM(*)
FROM sample_table
WITH (NOLOCK);
并将返回的校验和与存储的值进行比较。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。