请问如何用UPDATE语句更新 timestamp 列。

lhmstc2003 2012-04-11 09:27:27
Update ProductStructure set pubufts = (SELECT @@DBTS) where cpspcode ='26000001'

我这样写语句 执行提示这个错误

服务器: 消息 272,级别 16,状态 1,行 1
不能更新 timestamp 列。
...全文
810 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
AcHerat 2012-04-11
  • 打赏
  • 举报
回复
直接更新其他字段就可以了,这个字段不用更新。
迪迦凹凸曼 2012-04-11
  • 打赏
  • 举报
回复
时间戳在插入更新时自动更新,不能显示更新
唐诗三百首 2012-04-11
  • 打赏
  • 举报
回复
每个数据库都有一个计数器,当对数据库中包含 timestamp 列的表执行插入或更新操作时,该计数器值就会增加。 该计数器是数据库时间戳。 这可以跟踪数据库内的相对时间,而不是时钟相关联的实际时间。 一个表只能有一个 timestamp 列。 每次修改或插入包含 timestamp 列的行时,就会在 timestamp 列中插入增量数据库时间戳值。 这一属性使 timestamp 列不适合作为键使用,尤其是不能作为主键使用。 对行的任何更新都会更改 timestamp 值,从而更改键值。 如果该列属于主键,那么旧的键值将无效,进而引用该旧值的外键也将不再有效。 如果该表在动态游标中引用,则所有更新均会更改游标中行的位置。 如果该列属于索引键,则对数据行的所有更新还将导致索引更新。

参考 http://msdn.microsoft.com/zh-cn/library/ms182776(v=sql.90).aspx
lhmstc2003 2012-04-11
  • 打赏
  • 举报
回复
如何触发系统自动更新呢.
SQL有两个关联的表,这个是在表头的.
若通过软件在表体里插入内容时,表头的pubufts 列就会自动更新.

但是通过后台INSERT进去的 就不会自动更新.软件就不能识别它的更新
Mr_Nice 2012-04-11
  • 打赏
  • 举报
回复
timestamp 类型的列,不能显示更新。数据库将自动生成时间戳值。

22,301

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧