gpt4 book ai didi

sql - 检查 SQL Server 表的更改?

转载 作者:行者123 更新时间:2023-12-01 16:40:14 25 4
gpt4 key购买 nike

如何在不使用触发器或以任何方式修改数据库结构的情况下监视 SQL Server 数据库中表的更改?我首选的编程环境是.NET和 C#。

我希望能够支持任何 SQL Server 2000 SP4 或更高版本。我的应用程序是另一家公司产品的附加数据可视化。我们的客户群有数千人,因此我不想要求我们在每次安装时都修改第三方供应商的表。

所谓的“对表的更改”是指对表数据的更改,而不是对表结构的更改。

最终,我希望更改能够在我的应用程序中触发事件,而不必每隔一段时间检查更改。

<小时/>

根据我的要求(无触发器或架构修改,SQL Server 2000 和 2005),最好的做法似乎是使用 T-SQL 中的 BINARY_CHECKSUM 函数。 。我计划实现的方式是这样的:

每 X 秒运行一次以下查询:

SELECT CHECKSUM_AGG(BINARY_CHECKSUM(*))
FROM sample_table
WITH (NOLOCK);

并将其与存储的值进行比较。如果值已更改,请使用查询逐行浏览表:

SELECT row_id, BINARY_CHECKSUM(*)
FROM sample_table
WITH (NOLOCK);

并将返回的校验和与存储的值进行比较。

最佳答案

看一下 CHECKSUM 命令:

SELECT CHECKSUM_AGG(BINARY_CHECKSUM(*)) FROM sample_table WITH (NOLOCK);

只要表内容没有更改,每次运行都会返回相同的数字。有关详细信息,请参阅我的帖子:

CHECKSUM

以下是我如何在表更改时使用它来重建缓存依赖项:
ASP.NET 1.1 database cache dependency (without triggers)

关于sql - 检查 SQL Server 表的更改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com