如何轻松捕获记录添加到数据库的时间。我正在使用这个最佳和最简便的捕捉时间的方式
create table YourTable
(
Created datetime default getdate()
)
还有其他的选择吗?
如何轻松捕获记录添加到数据库的时间。我正在使用这个最佳和最简便的捕捉时间的方式
create table YourTable
(
Created datetime default getdate()
)
还有其他的选择吗?
仍然使用默认约束......还有其他值可以考虑使用 - 每个值都有不同的优点(涉及通用时间,精度等)。
http://msdn.microsoft.com/en-us/library/ms188383.aspx
而且 - 考虑你的数据类型的大小 - 日期时间为8个字节 - 你可以定义列SMALLDATETIME和完善,为4个字节(或2008年,只是普通的旧日期,这是3字节 - 虽然你可能真的很喜欢知道时间)。
触发器也是一种选择,但并不是优选的IMO - 一方面,如果违反任何约束条件(例如与刚刚创建的表的外部关系,忘记触发器 - oops !)
我认为这是规范的方法,你有问题吗?
其他方法将使用插入触发器,这可能是较慢和稍微复杂的代码是在两个地方。或者你可以通过一个SP来引导所有的更新,这也会更新创建的字段 - 这又稍微复杂一些,并且很容易规避,除非你的权限被仔细设置。
选项:
选项#2是比较简单的,因为它总是与GETDATE更新()。使用选项#1允许用户通过在INSERT子句中指定它来手动覆盖创建的日期。
一定要将NOT NULL添加到列中。 – beach
考虑GETUTCDATE()而不是GETDATE()。 –
应用程序的体系结构是什么?所有数据访问是通过存储过程还是视图,还是应用程序直接查询表? –