我有一个表,其中每行需要一个标记其插入时间的时间戳.我没有很多的数据库体验,但有些事情告诉我,这最好在数据库端自动处理,例如通过存储过程.
在MS sql中有一个时间戳数据类型,但是读取它,它被视为一系列数字,而不是作为C#中的DateTime对象.那么如果我不得不进行转换,那么它不能只是一个NVARCHAR数据类型?
所以简单地说,当插入到表中时,最简单的方法是(自动?)在行上放置一个时间戳?
编辑:表的定义很简单.目前它只有两列,仍然缺少时间戳列.
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 };
解决方案好的,现在工作了.我首先尝试通过Visual Studio 2008中的“服务器资源管理器”窗口添加新列.查找我的数据库,右键单击并选择“新建查询”.然后输入类似的东西
ALTER TABLE dbo.MyTable ADD CreatedDate datetime NOT NULL DEFAULT (GetUtcDate())
但是我收到了这个消息
The ALTER TABLE sql construct is not supported
The query cannot be represented graphically in the Diagram and Criteria Pane.
所以我以图形方式添加了它.第一个“打开表定义”,并在“数据类型”下的“列名称”和“日期时间”下添加CreatedDate.删除允许空值检查.然后在我添加的列属性
getutcdate()