4

我知道可以使用更改跟踪对 SQL Server 2008 中的单个表进行更改。但是,我无法找到一种可接受的方式来在单个查询中查询整个数据库中的所有更改。

这可能吗?

您对编写一些动态 SQL 并使用 exec 完成此操作有何想法?你有什么例子可以指点我吗?

在 SQL Server 2008 中监视特定列/行数据更改是否有任何其他替代方法,这比编写和维护触发器需要更少的工作?我们的数据库有超过 1500 个表,这不是一个选项。

谢谢

4

1 回答 1

2

当我开始使用 CDC 时,这个 URL 帮助我开始使用:http ://www.mssqltips.com/sqlservertip/1819/using-change-tracking-in-sql-server-2008/

CDC 的缺点是您无法看到谁更改了数据,只能看到数据已更改以及之前的数据是什么。CDC 仅在 Enterprise、Developer 和 Evaltion 版本中可用。

如果我必须审核特定表的数据更改,您还可以使用自 SQL Server 2008 以来可用的审核功能。可以为数据库启用审核,您可以查看谁执行了哪个命令。缺点是您只能看到执行的命令,而看不到执行命令之前存在的数据。

该网站可帮助您确定哪种功能更适合您的情况。它描述了不同的方法及其优缺点:http: //solutioncenter.apexsql.com/tag/methods-for-auditing-sql-server/

我总是避免使用触发器,因为它们会减慢插入、更新和删除记录的过程。

我希望这对你有所帮助

于 2014-07-25T20:35:23.663 回答