Sql server 跟踪SQL Server表数据更改

Sql server 跟踪SQL Server表数据更改,sql-server,sql-server-2012,Sql Server,Sql Server 2012,我们目前正在一个医疗保健应用程序中工作。由于医疗数据非常敏感,我们可能必须保留对某些医疗记录所做的所有更改的历史记录。我知道我们可以通过保存历史记录表来记录更改来做到这一点。但是保留历史记录表会导致数据库变得越来越大。因此,我想知道SQL Server中是否有跟踪表的完整数据更改的功能。我听说过变更数据捕获功能。它适用于我的场景吗?? 提前感谢这在很大程度上取决于您需要跟踪的内容。首先,任何追踪所有历史的东西都将占用更多的空间,并且假设相同的细节水平,在所需的空间方面不会有显著差异。数据就是数据

我们目前正在一个医疗保健应用程序中工作。由于医疗数据非常敏感,我们可能必须保留对某些医疗记录所做的所有更改的历史记录。我知道我们可以通过保存历史记录表来记录更改来做到这一点。但是保留历史记录表会导致数据库变得越来越大。因此,我想知道SQL Server中是否有跟踪表的完整数据更改的功能。我听说过变更数据捕获功能。它适用于我的场景吗??
提前感谢

这在很大程度上取决于您需要跟踪的内容。首先,任何追踪所有历史的东西都将占用更多的空间,并且假设相同的细节水平,在所需的空间方面不会有显著差异。数据就是数据,存储数据只需要占用空间。然而,如果您愿意,您可以考虑将审计信息存储在SQL之外,这对您很有帮助

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

  • 在表上使用SQL触发器创建历史记录表。这允许您包含任意多或任意少的列,因此这是一个很好的特性

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

  • 如前所述,使用SQL更改数据捕获。这是一个非常重要的功能,对性能和存储都有影响。然而,它将为您完成大部分工作,并且相对容易使用