我想要一个包含任务信息的表。 PriorityId,StateId,AssignedToUserId等。可以更新这些列。我希望能够列出任务的历史记录,显示更改以及进行更改的用户。该表将包含UpdateUserId表以及进行更新的用户。
我应该创建一个相同的'myTable_History'表,只需使用触发器将整个更新(或插入)的行发送到历史表中吗?或者有更好的方法吗?
不确定它是否有所作为,但我使用的是软删除...以及标识列作为主表的主键。
现在确定一种显示变化的好方法,但这是另一个问题。
答案 0 :(得分:3)
使用行级和列级跟踪
更改跟踪使应用程序能够跟踪用户所做的所有更改,这是一种内置方法
http://msdn.microsoft.com/en-us/library/ms172023(v=sql.90).aspx http://msdn.microsoft.com/en-us/library/bb964713.aspx
样品 http://blogs.msdn.com/b/davidhardin/archive/2011/02/06/sql-server-2008-column-change-tracking.aspx
答案 1 :(得分:0)
最简单的方法是使用CDC。关于如何做到这一点的大量资源。