请注意赏金:请仅在您知道可以监控同一数据库中的更改的工具时回答,不要提及比较2 dbs的工具。可以使用像Embarcadero Change Manager这样的可视化工具。
我希望有一个工具,只允许我在给定特定操作的情况下查看数据库中的“更改内容”。
场景可以是:
1)开始监控(使用工具)
2)用户在GUI上执行操作(例如在更改客户的电话号码后单击“应用”按钮)
3)停止moniroting:显示更改(使用工具)(在这种情况下,我应该只看到地址字段已更改)
Embarcadero's Change manager这样做,但它也有许多其他的东西,而且价格昂贵。我正在寻找一种只能做到这一点的简单工具。
注意:我不需要架构比较,只需简单的数据比较。
答案 0 :(得分:3)
如果您有SQL Server 2008 Enterprise Edition,则可以使用Change Data Capture以比DBCC LOG dbname,3
更有用的格式公开事务日志。有关详细信息,请参阅http://msdn.microsoft.com/en-us/library/bb522489.aspx。
答案 1 :(得分:2)
查看各种xSQL工具的Lite / Free版本:
http://www.xsqlsoftware.com/LiteEdition.aspx
拥有object-level compare以及data compare工具。
那些不能“动态”工作,但你总是可以有一个数据库作为参考,并将你当前的数据库与该基线进行比较。
答案 2 :(得分:1)
免费,一个选项是使用DBCC LOG dbname,3
转储事务日志。
解释输出可能很有趣,但肯定可行。
答案 3 :(得分:1)
另一个免费替代方案是将审计表放在适当的位置,并在所有表上放置审计触发器。这比更改数据捕获更灵活,因为您可以指定一些更改数据捕获无法捕获的附加内容。
Profiler也是一个工具,您可以使用它来查看应用程序发送到数据库的查询,该查询应该告诉您在许多情况下更改了什么。这是一个比审计更不永久的解决方案,但要考虑审计是否会在logn运行中发现有用。
我无法想象在没有设置审核的情况下管理数据库。它对于修复不良数据更改或发现谁做出特定更改非常有用。
答案 4 :(得分:1)
最明显的工具是SQL Profiler。它将监视每个SQL语句,从而监视发送到服务器的每个数据更改,并显示有关该语句的指标,执行语句的帐户以及大量其他信息,大多数SQL都可以使用它服务器版本。如果您只想查看数据更改,可以添加过滤器以仅显示“插入”,“更新”和“删除”语句。
如果您要做的是比较两个数据库以查看它们之间的数据有何不同,那么我建议使用Red-Gate的数据比较(不,我不适合它们)。通过列值比较,这种类型的列值不是免费的,而是非常宝贵的。
答案 5 :(得分:1)
您可以制作数据库快照(足够快),然后与工作数据库进行比较。这两个问题都可以通过free tools解决。