我正在组建一个简单的测试数据库来学习MVC。我想添加一个DateTime字段来显示记录何时创建。
ID = int
Name = Char
DateCreated = (dateTime, DateTime2..?)
我觉得这种类型的DateTime捕获可以自动完成 - 但这就是我所拥有的一种感觉。可以吗?如果是这样的话?
虽然我们讨论的主题是:如果我想要包含另一个捕获记录最后更新日期时间的字段,我该怎么做。
我希望不要手动执行此操作。
非常感谢
麦克
答案 0 :(得分:41)
您需要将日期字段的“默认值”设置为getdate()
。插入表中的任何记录都将自动将插入日期作为此字段的值。
“默认值”属性的位置取决于您运行的SQL Server Express的版本,但如果在编辑表时选择表的日期字段,则应该可以看到它。
答案 1 :(得分:31)
是的,这是一个例子:
CREATE TABLE myTable ( col1 int, createdDate datetime DEFAULT(getdate()), updatedDate datetime DEFAULT(getdate()) )
您可以在不指示createdDate和updatedDate列的情况下INSERT到表中:
INSERT INTO myTable (col1) VALUES (1)
或使用关键字DEFAULT:
INSERT INTO myTable (col1, createdDate, updatedDate) VALUES (1, DEFAULT, DEFAULT)
然后创建一个更新updatedDate列的触发器:
CREATE TRIGGER dbo.updateMyTable
ON dbo.myTable
FOR UPDATE
AS
BEGIN
IF NOT UPDATE(updatedDate)
UPDATE dbo.myTable SET updatedDate=GETDATE()
WHERE col1 IN (SELECT col1 FROM inserted)
END
GO
答案 2 :(得分:0)