我有2个应用程序,一个用于添加数据库,另一个用于监视数据库中的任何更改,
如何跟踪db中的任何更改(新记录,更改现有记录,删除),是否有类似系统监视器的类来监视数据库表?
我搜索并找到了SQL Dependency Class,但我不知道它是否适合我的场景。
提前致谢,
答案 0 :(得分:2)
您可以使用trigger来检查它们在您的实例中执行的INSERT,UPDATE或DELETE查询。
此外,SQL Server有一个很棒的工具SQL Server Profiler。您可以使用它连接到您的实例并收听每个查询和操作。
这SO question也许可以帮到你。
答案 1 :(得分:0)
我不建议为这种情况寻找触发器,因为这将是额外的负担。
但有2个选项
1)。 Microsoft SQL Server - 更改数据捕获(CDC) - here 遗憾的是,这在标准版本中不可用。 但您可以在Enterprise,Developer和Evaluation版本中找到
2)。 CodePlex-StandardCDC here
答案 2 :(得分:0)
使用开源类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);
希望这有帮助。