对不起,我对此并不陌生,我的知识有限。我有一个捕获信息的网络表单。我有一个create_date列来添加当前的日期/时间戳,但是,每当它捕获一个条目时,它都会更新所有行。创建记录时如何设置日志?
答案 0 :(得分:1)
那是因为它是一个计算列。您应该将其更改为默认值为GetDate()
的常规列。
ALTER TABLE TableName
DROP COLUMN create_date;
ALTER TABLE TableName
ADD COLUMN create_date NOT NULL DEFAULT(GetDate());
请注意,这样做将重新创建create_date
列,并且在创建该列时表中存在的所有记录将获得相同的值。对于重新创建后插入的记录,这只是一个准确的create_date。
答案 1 :(得分:0)
尽管在这种情况下建议使用默认值,但使用计算列不一定是错误的。如果您的特定情况要求使用计算列而不是DEFAULT
,请尝试使其成为PERSISTED
,如下面的博客文章所示。
编辑:
不好意思,@ ZoharPeled关于GETDATE
不确定性的评论是正确的。 PERSISTED
在这种情况下不起作用。 DEFAULT
似乎是最好的选择。