【发布时间】:2017-05-19 12:59:25
【问题描述】:
我很好奇是否有办法知道 sybase 表之前是否已更新/添加?该表是通用的,我不允许使用触发器或创建类似 updateDate 字段的内容。检查行数变化不是一种选择。
我的第一个想法是检查 sysobjects 表,但从我使用下面的 sql 看到的情况来看,我认为没有列存储任何有用的信息来解决我的问题。
select name,userstat,uid, type, sysstat, indexdel, schemacnt,sysstat2,sysstat3, crdate,expdate,deltrig,instrig,ckfirst,cache, objspare,versionts,loginame,identburnmax,spacestate,erlchgts,lobcomp_lvl
from sysobjects o where type = 'U'
关于如何知道表格是否已更新的任何其他想法?
【问题讨论】:
-
您是否有兴趣确定一个表是否曾经更新过,或者是否在某个时间更新过?如果是后者,那么您可以进行的一项设计更改是在您的表格中添加最后更新时间的列。
-
后者,也是我所怀疑的。只是想确定有没有其他可能的方法。
-
即使有其他方法,它也可能是 Sybase 特有的,这意味着如果您要移植到或支持另一个数据库,它可能无法在那里工作。
-
sybase spesific 对于这种情况来说是一个不错的解决方案。我更喜欢把更新的日期+触发器,但这不是我要做的。