我正在建立一个销售数据库。其中一个表必须是销售代表及其指定区域的层次结构。 Ohese的代表和他们的领地每天都在变化,我需要记录每天的表格究竟是什么样的。我需要每天拍摄桌子的快照。
我想知道我必须做什么或如何将数据存储在表中,以便能够准确地知道表中的数据在某个特定时间点。
这可能吗?
请记住,表格不会超过一兆字节。
答案 0 :(得分:3)
我建议使用Paul Nielsen的AutoAudit:
AutoAudit是一个SQL Server(2005,2008)创建的Code-Gen实用程序 审计跟踪触发器:
- Created,CreatedBy,Modified,ModifiedBy和RowVersion(递增INT)列到表
- 将事件记录到审核表
- 更新记录到审核表的新旧值
- 删除将所有最终值记录到审核表
- 查看重建已删除的行
- UDF重建行历史
- 用于跟踪架构更改的架构审核触发器
- 当Alter Table更改表格时重新编码gens触发
他最初的博文:CodeGen to Create Fixed Audit Trail Triggers
在生产中实施之前,建议您将数据库的备份还原到开发中并进行处理。
答案 1 :(得分:0)
这适用于MS SQL。
由于表格很小,您最好使用MS SQL提供的快照功能。
制作数据库的快照:
CREATE DATABASE YourDB_Snapshot_DateStamp ON
( NAME = YourDB_Data, FILENAME =
'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Data\YourDB_Snapshot_DateStamp.ss' )
AS SNAPSHOT OF YourDB;
GO
请参阅此页面以供参考:http://msdn.microsoft.com/en-us/library/ms175876.aspx
您可以根据需要制作任意数量的快照。所以我的建议是创建一个创建每日快照的脚本或任务,并将日期附加到快照名称。这样,您就可以在服务器上看到所有快照。
需要注意的重要事项:快照是只读的。