检查字段更新SQL

时间:2013-02-14 16:20:23

标签: sql sql-server

我有一张与此类似的表格:

StockId | Dispatched
--------------------    
1234    | 0
1234    | 1

dispatched = 0在订单进入库存商品之前,会更改为= 1

这适用于为今天的库存生成结果,因为您可以执行查询以显示dispatched ='0'的位置。但是对于较旧的数据,我想查看特定日期的库存情况,即01/01/2010。有一个简单的方法吗?

由于

1 个答案:

答案 0 :(得分:3)

不是以这种方式使用bit或int标志,只需将dispatched更改为date或datetime(nullable - null将等于当前的0)。然后,您可以查询您想要的任何日期比较。

虽然对代码的更改应该相当简单,但如果您无法更改已分派的列,则会有一些不太吸引人的选择:

  • 添加另一个可以为空的列来跟踪日期时间。
  • 添加一个DispatchedAt表,其中包含非null日期时间和引用当前表的外键约束(经典1NF)。
  • 添加一个“存档表”,其中包含系统生成的日期时间,并在主表上填充触发器。
  • 以您希望的方式创建一个新表,并创建一个可更新的视图,模仿旧表(具有相同名称)以“欺骗”您的应用。

如果这不仅仅是一个新功能,但历史数据非常重要(监管审计?),您可能会检查您的事务日志或备份以查看更改的时间,但这样的解决方案将属于DBA。 SE。