如何设置 timeStamp 字段不自动更新

xieyj 2010-07-09 01:19:51
现在有一个应用在默认情况下我还是希望 timestamp 列是自动更新的,但有没办法可以设置我处理某些数据时这个时间戳不会被更新掉,或是我可以手动更新这个字段值,让他保留原值。
...全文
521 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangtaoceo 2012-03-13
  • 打赏
  • 举报
回复
如果想设置timestamp不自动更新值可以在创建表的时候加上 default CURRENT_TIMESTAMP,
例如:
test timestamp default CURRENT_TIMESTAMP
bancxc 2010-07-09
  • 打赏
  • 举报
回复
那就用datetime getdate()默认值 需要特殊处理就手动复制吧
timestamp不行的
xieyj 2010-07-09
  • 打赏
  • 举报
回复
顶一下
xieyj 2010-07-09
  • 打赏
  • 举报
回复
某种特殊情况不需要同步
jinjazz 2010-07-09
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 xieyj 的回复:]

谢谢各位的回答,其实我是想做一个数据相互同步的过程,两个数据库之间的数据都有可能更新,他们是相互影响的。

真的就没办法控制 timestamp 值?
[/Quote]

不互相影响哪里来的互相同步呢
Mr_Nice 2010-07-09
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 jinjazz 的回复:]

既然用了这个字段就不能干预他的工作方式,这个是数据库全局的.除非你不用
[/Quote]

up
claro 2010-07-09
  • 打赏
  • 举报
回复
尝试加入站点编号呢。。
xieyj 2010-07-09
  • 打赏
  • 举报
回复
谢谢各位的回答,其实我是想做一个数据相互同步的过程,两个数据库之间的数据都有可能更新,他们是相互影响的。

真的就没办法控制 timestamp 值?
永生天地 2010-07-09
  • 打赏
  • 举报
回复
什么是时间戳:

timestamp
SQL Server timestamp 数据类型与时间和日期无关。SQL Server timestamp 是二进制数字,它表明数据库中数据修改发生的相对顺序。实现 timestamp 数据类型最初是为了支持 SQL Server 恢复算法。每次修改页时,都会使用当前的 @@DBTS 值对其做一次标记,然后 @@DBTS 加1。这样做足以帮助恢复过程确定页修改的相对次序,但是 timestamp 值与时间没有任何关系。

在 SQL Server 7.0 版和 SQL Server 2000 中,@@DBTS 只在 timestamp 列中使用时其值才会递增。如果一个表包含 timestamp 列,则每次由 INSERT、UPDATE 或DELETE 语句修改一行时,此行的 timestamp 值就被置为当前的 @@DBTS 值,然后 @@DBTS 加1。

因为每一次修改时 timestamp 值都会改变,所以千万不要在键(特别是主键)中使用 timestamp 列。

若要记录表中发生的数据修改次数,可用 datetime 或 smalldatetime 数据类型来记录这些事件和触发器,这样,当发生修改时,就可以自动更新其值。
永生天地 2010-07-09
  • 打赏
  • 举报
回复
应该是不行
SQL77 2010-07-09
  • 打赏
  • 举报
回复
再加一个时间列来代替吧
jinjazz 2010-07-09
  • 打赏
  • 举报
回复
既然用了这个字段就不能干预他的工作方式,这个是数据库全局的.除非你不用

22,209

社区成员

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

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