我有 2 个应用程序,一个用于添加数据库,另一个用于查看数据库中的任何更改,
我如何跟踪数据库中的任何更改(新记录,现有记录的更改,删除),是否有像系统观察者这样的类来观察数据库表?
我搜索并找到了 SQL 依赖类,但我不知道它是否适合我的场景。
提前致谢,
我有 2 个应用程序,一个用于添加数据库,另一个用于查看数据库中的任何更改,
我如何跟踪数据库中的任何更改(新记录,现有记录的更改,删除),是否有像系统观察者这样的类来观察数据库表?
我搜索并找到了 SQL 依赖类,但我不知道它是否适合我的场景。
提前致谢,
您可以使用触发器来检查它们在您的实例中执行的 INSERT、UPDATE 或 DELETE 查询。
此外,SQL Server 有一个很棒的工具,SQL Server Profiler。您可以使用它连接到您的实例并收听每个查询和操作。
这个SO question也许可以帮助你。
使用开源类SqlDependencyEx。它非常容易配置和使用:
int changesReceived = 0;
using (SqlDependencyEx sqlDependency = new SqlDependencyEx(
TEST_CONNECTION_STRING, TEST_DATABASE_NAME, TEST_TABLE_NAME))
{
sqlDependency.TableChanged += (o, e) => changesReceived++;
sqlDependency.Start();
// Make table changes.
MakeTableInsertDeleteChanges(changesCount);
// Wait a little bit to receive all changes.
Thread.Sleep(1000);
}
Assert.AreEqual(changesCount, changesReceived);
希望这可以帮助。