Roc*_*oal 30 database datetime database-design field sql-server-express
我正在组建一个简单的测试数据库来学习MVC.我想添加一个DateTime字段来显示记录何时创建.
ID = int
Name = Char
DateCreated = (dateTime, DateTime2..?)
Run Code Online (Sandbox Code Playgroud)
我有一种感觉,这种类型的DateTime捕获可以自动完成 - 但这就是我所拥有的一种感觉.可以吗?如果是这样怎么样?
当我们讨论这个主题时:如果我想要包含另一个捕获记录最后更新的DateTime的字段,我该怎么做.
我希望不要手动执行此操作.
非常感谢
麦克风
Ant*_*Ant 41
您需要将日期字段的"默认值"设置为getdate().插入表中的任何记录都将自动将插入日期作为此字段的值.
"默认值"属性的位置取决于您运行的SQL Server Express的版本,但如果在编辑表时选择表的日期字段,则该属性应该是可见的.
Kev*_*vin 34
是的,这是一个例子:
CREATE TABLE myTable ( col1 int, createdDate datetime DEFAULT(getdate()), updatedDate datetime DEFAULT(getdate()) )
Run Code Online (Sandbox Code Playgroud)
您可以在不指示createdDate和updatedDate列的情况下INSERT到表中:
INSERT INTO myTable (col1) VALUES (1)
Run Code Online (Sandbox Code Playgroud)
或者使用关键字DEFAULT:
INSERT INTO myTable (col1, createdDate, updatedDate) VALUES (1, DEFAULT, DEFAULT)
Run Code Online (Sandbox Code Playgroud)
然后创建一个更新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
Run Code Online (Sandbox Code Playgroud)