I'm putting together a simple test database to learn MVC with. I want to add a DateTime field to show when the record was CREATED.
ID = int
Name = Char
DateCreated = (dateTime, DateTime2..?)
I have a feeling that this type of DateTime capture can be done automatically - but that's all I have, a feeling. Can it be done? And if so how?
While we're on the subject: if I wanted to include another field that captured the DateTime of when the record was LAST UPDATED how would I do that.
I'm hoping to not do this manually.
Many thanks
Mike
This question is related to
database
database-design
datetime
sql-server-express
field
Yes, here's an example:
CREATE TABLE myTable ( col1 int, createdDate datetime DEFAULT(getdate()), updatedDate datetime DEFAULT(getdate()) )
You can INSERT into the table without indicating the createdDate and updatedDate columns:
INSERT INTO myTable (col1) VALUES (1)
Or use the keyword DEFAULT:
INSERT INTO myTable (col1, createdDate, updatedDate) VALUES (1, DEFAULT, DEFAULT)
Then create a trigger for updating the updatedDate column:
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
Just right click on that column and select properties and write getdate()
in Default value or binding
.like image:
If you want do it in CodeFirst
in EF
you should add this attributes befor of your column definition:
[Databasegenerated(Databaseoption.computed)]
this attributes can found in System.ComponentModel.Dataannotion.Schema
.
In my opinion first one is better:))
Source: Stackoverflow.com