跟踪 SQL 服务器 Table 数据更改

Tracking SQL Server Table data changes

我们目前正在开发医疗保健应用程序。由于医疗数据非常敏感,我们可能必须保留对某些医疗记录所做的所有更改的历史记录。我知道我们可以通过保留历史记录 table 来记录更改来做到这一点。但是保留历史 tables 会导致数据库变大。所以想知道SQL服务器有没有什么功能可以跟踪一个table的完整数据变化。我听说变更数据捕获 feature.Is 它适用于我的场景?? 提前致谢

这在很大程度上取决于您需要跟踪的内容。首先,任何跟踪所有历史记录的东西 都会 使用更多 space,并且假设细节水平相同,他的 space 不会有太大差异需要。数据就是数据,存储起来只需要space。但是,如果您愿意,可以使用多种选项将审计信息存储在 SQL 之外,这很有帮助。

其次,您至少有三个显而易见的选择。

  1. 对表使用SQL触发器来创建历史表。这确实允许您根据需要包含尽可能多或尽可能少的列,因此这是一个不错的功能。

  2. 使用 SQL 更改跟踪来监视更改并创建历史表或以其他方式审核更改。更改跟踪只存储有更改,您可以存储更改的内容。由于这是可查询的,因此如果需要,您可以相对轻松地将其存储在 dB 之外。

  3. 如前所述使用 SQL 更改数据捕获。这确实是重量级的,并且对性能和存储有影响。但是,它会为您完成大部分工作,并且相对易于使用。