如何获取整个数据库的MD5并使用它来轮询更改?

Plu*_*luc 0 c# sql-server linq-to-sql

我正在尝试进行某种轮询以侦听数据库中发生的更新.到目前为止,我正在考虑获取数据库(或几个表)的MD5哈希(或任何类型或哈希),将其存储在变量中,并运行一遍又一遍地循环此过程的线程,将其与最后一个结果进行比较.如果不同,则将一个按钮设置为Enabled,这会分组数据库加载功能.

这是一个很好的方法吗?如果没有,为什么?如果有,怎么样?

我不知道如何实现的部分是在数据库的一侧获取MD5哈希.我可以很容易地获得所有数据然后得到它的md5哈希,所有客户端,但是......是的.

我正在使用LINQ to SQL,但我担心我只能使用上下文来运行Raw查询.这是在WinForms,.NET 3.5(不是它应该重要但是......).

非常感谢任何提示.谢谢!

Rem*_*anu 6

不要重新发明轮子.使用正确的工具:

  • SQL Server 2008中的更改跟踪更改跟踪使应用程序只能获取对用户表所做的更改以及有关这些更改的信息

  • 更改数据捕获更改数据捕获旨在捕获应用于SQL Server表的插入,更新和删除活动,并以易于使用的关系格式提供更改的详细信息.更改数据捕获使用的更改表包含镜像跟踪源表的列结构的列,以及理解已发生更改所需的元数据.

请注意,上面提到的两种技术都是针对偶尔连接的系统(例如,移动用户连接杆以刷新其本地快照).对于永久连接且需要在后端发生更改时刷新其显示的系统,正确的技术是查询通知.