sql-server-2008 – 如何在单个查询中使用更改跟踪从SQL Server数据库中获取所有更改(或避免对数据库进行查询)?

我知道可以使用更改跟踪来更改SQL Server 2008中的单个表.

但是,我无法找到一种可接受的方法来在单个查询中查询整个数据库中的所有更改.

这可能吗?

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

是否还有其他方法可以监控SQL Server 2008中的特定列/行数据更改,这些更改需要比编写和维护触发器更省力?我们的数据库有超过1500个表,这不是一个选项.

谢谢

最佳答案 当我开始使用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/

我总是避免使用触发器,因为这会减慢插入,更新和删除记录的进程.

我希望这能帮到你一点点

点赞