3

赏金注意事项:请仅在您知道可以监控同一数据库中哪些变化的工具时回答,不要提及比较 2 个数据库的工具。像 Embarcadero Change Manager 这样的可视化工具值得赞赏。

我想要一个工具,让我在给定特定操作的情况下,只查看数据库中的“发生了什么变化”。

场景可以是:

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

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

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

Embarcadero 的变更经理可以做到这一点,但它也做很多其他事情,而且成本很高。我正在寻找一个更简单的工具,只做这个。

注意:我不需要模式比较,只是简单的数据比较。

4

6 回答 6

3

如果您有 SQL Server 2008 Enterprise Edition,则可以使用 Change Data Capture 以比DBCC LOG dbname,3. 有关详细信息,请参阅http://msdn.microsoft.com/en-us/library/bb522489.aspx

于 2010-11-23T15:28:10.637 回答
2

查看各种 xSQL 工具的 Lite/Free 版本:

http://www.xsqlsoftware.com/LiteEdition.aspx

有一个对象级的比较,以及一个数据比较工具。

这些不能“即时”工作,但您始终可以将一个数据库作为参考,并将您当前的数据库与该基线进行比较。

于 2010-11-17T16:09:01.170 回答
1

免费的一种选择是用于DBCC LOG dbname,3转储事务日志。

解释输出可能很有趣,但肯定是可行的。

于 2010-11-22T16:17:20.140 回答
1

另一种免费的替代方法是放置审计表并将审计触发器放在所有表上。这比变更数据捕获更灵活一点,因为您可以指定一些变更数据捕获未捕获的附加内容。

Profiler 也是一个工具,您可以使用它来查看应用程序发送到数据库的查询,它应该告诉您在许多情况下发生了哪些更改。与审计相比,这是一个不太持久的解决方案,但请考虑审计是否在 logn 运行中有用。

我无法想象在没有设置审计的情况下管理数据库。它对于修复错误的数据更改或找出谁进行了特定更改非常有用。

于 2010-11-23T15:33:31.793 回答
1

最明显的工具是 SQL Profiler。它将监视发送到服务器的每条 SQL 语句,以及每条数据更改,并向您显示有关该语句的指标、执行该语句的帐户以及许多其他信息,并且大多数 SQL 都免费提供服务器版本。如果您只想查看数据更改,您可以添加过滤器以仅显示插入、更新和删除语句。

如果您要做的是比较两个数据库以查看它们之间有哪些不同的数据,那么我会推荐类似 Red-Gate 的数据比较(不,我不为他们工作)。对于这种类型的列值逐列值比较,它不是免费的,但非常宝贵。

于 2010-11-26T19:17:59.170 回答
1

您可以制作数据库快照(足够快),然后与工作数据库进行比较。这两个问题都可以通过免费工具来解决。

于 2010-11-28T23:51:09.273 回答