sql编辑保存日志

时间:2011-05-01 12:26:17

标签: sql-server

我想知道如何在sql server中保存已编辑的值以在此之后返回它的值。

例如:

我有一个状态正常的用户,一年之后它的状态为“已关闭”状态在表用户工作时保存为id,当状态为id时,状态为1,当它关闭时我更新了id 2.我怎样才能看到该用户从日期到日期工作正在关闭。

感谢您的回复。

你有我的问题。

但这里的问题是我在这里只给出一个用户状态的例子,但问题是我有很多表,我改变了他们的id。例如,我有城市ID,或产品ID等。

如果我将它保存在同一个用户表中,例如我丢失了用户ID,因为每次更新用户时都会占用一个新ID,或者如果我执行用户状态表,我会做20个或更多表,如用户状态历史。另外我想保存文本不仅是id。例如,用户从这个日期到目前为止,我想说一个新的地址,他现在在以前的地址,现在可以在另一个地方住。

请提出任何建议:)。

2 个答案:

答案 0 :(得分:0)

您的问题很不清楚,但我认为您的意思是“我有一个带有状态列的用户表,我需要查看状态更改的历史记录,因为当我更改特定用户的状态值时,我会丢失以前的值“。

如果这是正确的,一个简单的解决方案是添加第二个名为UserStatus或其他的表,并在每次用户状态更改时插入新行。然后,您可以轻松查看每个用户的状态更改的完整历史记录,还可以通过查询该用户的“最新”行来查找任何用户的当前状态。

原则上,如果添加UserStatus表,则不需要User表上的Status列,因此您可以将其删除。如果这不可能(例如,您不使用该表控制应用程序),则可以在更新状态时自动填充UserStatus表的User表中添加触发器。

答案 1 :(得分:0)

我的建议是有两列

一个是工作/日期和关闭/日期,以便您可以维护数据的历史记录。