2

我有 2 个应用程序,一个用于添加数据库,另一个用于查看数据库中的任何更改,

我如何跟踪数据库中的任何更改(新记录,现有记录的更改,删除),是否有像系统观察者这样的类来观察数据库表?

我搜索并找到了 SQL 依赖类,但我不知道它是否适合我的场景。

提前致谢,

4

3 回答 3

2

您可以使用触发器来检查它们在您的实例中执行的 INSERT、UPDATE 或 DELETE 查询。

此外,SQL Server 有一个很棒的工具,SQL Server Profiler。您可以使用它连接到您的实例并收听每个查询和操作。

这个SO question也许可以帮助你。

于 2013-10-30T14:03:38.287 回答
1

我不建议在这种情况下使用触发器,因为这将是一个额外的负担。

但是有2个选项

1)。 Microsoft SQL Server - 更改数据捕获 (CDC) -不幸的是 这在标准版本中不可用。但您可以在 Enterprise、Developer 和 Evaluation 版本中找到

2)。 CodePlex-StandardCDC 在这里

3)。可以选择更改跟踪 (CT)请参考在此处输入链接描述

于 2013-10-30T14:23:21.887 回答
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);

希望这可以帮助。

于 2016-01-08T02:19:40.570 回答