11
|
Zachary Scott · 技术社区 · 14 年前 |
![]() |
1
16
不。 你需要有一个专栏。 想象一下,如果您需要为创建的每个记录保留一个记录,那么元数据会有多大!您是否还想将元数据保存在元数据上,以便知道元数据何时更新?空间使用会迅速升级。 SQL Server保留了一些统计信息,但是这个特定的信息需要来自用户定义的字段。
另外,如果使用查找表,则可能会使修改已创建字段上的日期更加困难。创建一个表“TableName_Create date”,并使用实际表中的主键和日期值。你的约会在一个单独的地点,不太可能被修改,但是你仍然可以
如果你只想要 日期 而且不需要datetime值,您可以更进一步,只需要一个日期表和一个连接到该表的查找表。即。:
如果有很多行(我认为每行4字节),这将节省大量的驱动器空间。 |
![]() |
2
4
应添加creationdate字段。通过在更新时添加一个不允许更新该字段的触发器来修复“希望没有人修改它”部分。 |
![]() |
3
1
不,据我所知连系统表都没有。我敢肯定,你可以翻阅旧的事务日志,但从本质上说,不行。 |
![]() |
4
0
我曾经遇到过这样一种情况:表的行顺序是必需的,但是没有时间戳(CreateDateTime、UpdateDateTime等等)列可用。所以,我只有事务日志。直接读取事务日志没有帮助,因为它不容易解析。因此,我发现了一个名为“ApexSQL Log”的程序,它非常有用。它有所有的过滤选项,您可以读取所有的日志数据,而无需核心操作。虽然这个解决方案让我很满意,但它有一个缺点:只能根据事务操作筛选日期(开始时间和结束时间)。如果您正在搜索一个查询操作,例如一个封装在事务中的insert,那么您无法检索确切的insert时间(至少我找不到方法),只能检索事务时间。如果您的操作都是原子的,那么您可以直接拥有所有的行创建日期信息。 |
![]() |
5
-4
如果他只想按它点菜,你可以考虑用 timestamp 列。 它不能与现实世界中的日期相关,但您可以对其进行排序。 |
![]() |
ybou · 需要帮助从SQL 2005查询中删除过时的=*连接运算符 7 年前 |
![]() |
Robert · 将多个分隔符分隔的字段视为不同的行 8 年前 |
![]() |
hud · 执行存储过程会导致错误 9 年前 |
![]() |
Gonzalo · 如何将存储过程的结果插入到新表中? 9 年前 |