是否有一个免费(或非常便宜)的工具来突出显示sql server的数据更改?

时间:2010-11-17 16:05:55

标签: sql-server data-comparison

请注意赏金:请仅在您知道可以监控同一数据库中的更改的工具时回答,不要提及比较2 dbs的工具。可以使用像Embarcadero Change Manager这样的可视化工具。

我希望有一个工具,只允许我在给定特定操作的情况下查看数据库中的“更改内容”。

场景可以是:

1)开始监控(使用工具)

2)用户在GUI上执行操作(例如在更改客户的电话号码后单击“应用”按钮)

3)停止moniroting:显示更改(使用工具)(在这种情况下,我应该只看到地址字段已更改)

Embarcadero's Change manager这样做,但它也有许多其他的东西,而且价格昂贵。我正在寻找一种只能做到这一点的简单工具。

注意:我不需要架构比较,只需简单的数据比较。

6 个答案:

答案 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解决。