加入收藏 | 设为首页 | 会员中心 | 我要投稿 站长网 (https://www.zhandada.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

SQL Server数据库(时间戳timestamp)类型

发布时间:2022-12-12 14:03:17 所属栏目:MsSql教程 来源:未知
导读: 1.公开数据库中自动生成的唯一二进制数字的数据类型。
2.timestamp通常用作给表行加版本戳的机制。
3.存储大小为8个字节。不可为空的 timestamp 列在语义上等价于 binary(8) 列。可为空的

1.公开数据库中自动生成的唯一二进制数字的数据类型。

2.timestamp通常用作给表行加版本戳的机制。

3.存储大小为8个字节。不可为空的 timestamp 列在语义上等价于 binary(8) 列。可为空的 timestamp 列在语义上等价于 varbinary(8) 列。这将导致在C#程序中获取到的timestamp类型则变成了byte[]类型。所以如果我们需要从数据库中获取并使用这个时间戳的话就必需经过转换。

4.timestamp数据类型只是递增的数字,不保留日期或时间。若要记录日期或时间,请使用datetime数据类型。

5.一个表只能有一个 timestamp 列。每次插入或更新包含 timestamp 列的行时,timestamp 列中的值均会更新。对行的任何更新都会更改timestamp值。

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

时间戳字段在数据库中起什么作用:

1.给一个表加一个时间戳字段(timestamp),假设某条记录同时被两个人A和B读取并且正在修改。A先修改完成然后保存了,然后B再保存的时候,会由于时间戳不一致(因为A之前先保存修改了时间戳)导致B保存失败。timestamp是数据库记录版本控制的好东西,Linq to sql, entity framework都有很好的支持。

2.数据库优化:当在处理几十万条并发数据时,我们就可以在使用最频繁的表中添加一列字段mssql 通用数据类型,类型为timestamp,添加完毕后系统会自动生成相应的唯一值,如果数据记录有任何改动,timestamp值也会做相应的调整。

转载于:

最近被这个时间戳虐到了,,,这几篇博文解释的很好,感谢博主

1.

2.

3.

(编辑:站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!