如何轻松捕获将记录添加到数据库的时间。我正在使用这个
create table YourTable
(
Created datetime default getdate()
)
还有其他选择吗?
答案 0 :(得分:2)
我认为这是规范方法,你有问题吗?
其他方法将使用插入触发器,这可能更慢,稍微复杂一点,因为代码在两个地方。或者您可以通过SP引导所有更新,这也会更新Created字段 - 除非您仔细设置权限,否则再次稍微复杂且容易规避。
答案 1 :(得分:1)
选项:
选项#2更加万无一失,因为它始终使用GETDATE()进行更新。使用选项#1允许用户通过在INSERT子句中指定它来手动覆盖创建日期。
答案 2 :(得分:1)
仍然使用默认约束......你可以考虑使用其他值 - 每种值都有不同的优点(包括通用时间,精度等)。
http://msdn.microsoft.com/en-us/library/ms188383.aspx
另外 - 考虑数据类型的大小 - 日期时间是8字节 - 你可以将列定义为smalldatetime并将其改进为4字节(或者在2008年,只是普通旧日期,即3字节 - 尽管你可能实际上也想知道时间。)
触发器也是一个选项,但不是优选的IMO - 首先,如果违反任何约束(例如与您刚创建的表的外部关系,忘记触发器 - oops,它们可以回滚! )