我使用ODBC,C++来处理SQL Server数据库。我希望检测数据库的某些表中的修改:另一个应用程序插入或更新行,而我必须检测所有这些修改。它不必是直接触发器,可以使用轮询定期检查数据库表的修改。
下面是我认为可以做到这一点的方法,需要您的意见,无论这是标准/正确的方法,还是存在更好的方法。我的想法是这样的:我在SQL Server
因此,在一个表中,如果您更改了5个列值,那么审计跟踪中就会有5个记录,分别对应具有旧值和新值的一列。
最近,我们升级到了SQL Server 2008。我一直在考虑使用新的变更数据捕获功能,因为它提供了非常简洁的行级更新,而且非常容易实现。我只是想从那些一直在使用变更跟踪的人那里获得一些意见,以获得任何警告或任何其他现实世界中关于这一点的有用信息。
SQL Server 2008 R2中是否有系统表或dmv包含针对任何用户表发出的最后一条DML语句(select除外)的相关信息?我看到在sys.tables中有一个modify_date列,但这只是用于任何表更改(DDL语句)。我不想在数据库中的每个表上创建触发器,也不想在这个作用域的数据库级别上创建触发器。这样做的原因是,我想知道最后一次在每个表中执行ins
我正在尝试在SQL Server 2012中实施变更数据捕获。我在数据库和表级启用了它。当我尝试更新表时,CDC_CT捕获更改。然而,当我使用SSIS CDC组件时,它没有选择任何东西。SQL Server的版本是: Microsoft SQL server 2012 (SP3-CU10-GDR) (KB4057121) - 11.0.6615.2 (X64) Jan 9 2018 21:26:48