1

以前有没有人实施过这个?即数据库实体的更改跟踪机制。所以我们可以看到实体的不同版本。只是不想重新发明轮子,因为它似乎是软件工程中的一项常见任务。我对包含一对多和多对多关系的复杂实体跟踪特别感兴趣,即属性分散在多个表中的实体。某种数据库级别的版本控制。有什么想法吗?

PS 我使用 SQL Server 2008 和实体框架(代码优先)作为 ORM。

4

1 回答 1

1

变更数据捕获是一项很棒的功能,但它仅适用于企业版 SQL Server。

您可以尝试的其他事情是:

  • DDL 和 DML 触发器 - 为要跟踪的所有表和/或对象编写触发器,并将以前的值存储在存储表中。这需要你做一些工作,但它肯定会奏效。有一个基于触发器的审计工具 - ApexSQL Audit。您可以安装试用版,查看如何在那里创建触发器,然后为您的环境创建类似的东西。

  • 版本控制 - 有 3rd 方工具允许您对对象和数据进行版本控制,您可能可以将这些自动化,这样您就不会忘记将某些内容放入版本控制中。尝试Red Gate 的SQL 源代码控制或 ApexSQL 的ApexSQL 版本

  • 读取事务日志 - 如果您的数据库处于完全恢复模式,那么几乎所有数据都存储在事务日志中(DML 和 DDL,SELECT 除外)。不幸的是,您只能使用ApexSQL LogToad for SQL Server等 3rd 方工具来执行此操作。

于 2013-02-12T10:36:17.140 回答