KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I have a table where each row needs a timestamp marking the time it has been inserted. I don't have a lot of database experience, but something tells me that this would best be handled automatically on the database side, for example through a stored procedure. There is a timestamp datatype in MS SQL, but reading about it, it is treated as a series of numbers and not as a DateTime object in C#. So couldn't it just be a NVARCHAR datatype if I have to do the conversion anyway? So simply put, what is the easiest way to (automatically?) put a timestamp on a row when it is inserted into a table? Edit: the table definition is very simple. It only has two columns at the moment and still lacking the timestamp column. SqlCommand command = con.CreateCommand(); command.CommandText = "INSERT INTO Bio VALUES (" + "@ID, @Name)"; command.Parameters.AddWithValue("ID",number); command.Parameters.AddWithValue("Name", name); try { SqlDataReader thisReader = command.ExecuteReader(); thisReader.Close(); } catch { // Do something }; Solution Okay, it works now. I first tried adding the new column through the Server Explorer window in Visual Studio 2008. Finding my database, right click and selecting "New Query". Then typing something like ALTER TABLE dbo.MyTable ADD CreatedDate datetime NOT NULL DEFAULT (GetUtcDate()) But I got the message that The ALTER TABLE SQL construct is not supported The query cannot be represented graphically in the Diagram and Criteria Pane. So instead I added it graphically. First "Open table definition" and adding CreatedDate under Column Name and datetime under Data Type. Removing the Allow Nulls check. Then in the Column Properties I added getutcdate()
Tags (comma-separated)
Save Edits
Cancel