你的位置:首页 > 软件开发 > 数据库 > 关于timestamp的二三事

关于timestamp的二三事

发布时间:2015-11-18 11:01:10
之所以要写timestamp的随笔,是因为之前对它的理解存在误区,so. I have to remind myself by writing this informal essay.微软文档链接:https://msdn.microsoft.com/zh-cn/library/ ...

之所以要写timestamp的随笔,是因为之前对它的理解存在误区,so. I have to remind myself by writing this informal essay.

微软文档链接:https://msdn.microsoft.com/zh-cn/library/ms182776.aspx

释义(rowversion和timestamp是一样的好比C#里的(String和string是一个概念 同义词,写法不一样而已 ),不过微软好像建议用 rowversion ,数据库上操作还是有差别的暂时未深入研究,可查询下面的超链接看看):

公开数据库中自动生成的唯一二进制数字的数据类型。 rowversion 通常用作给表行加版本戳的机制。 存储大小为 8 个字节。 rowversion 数据类型只是递增的数字,不保留日期或时间。 若要记录日期或时间,请使用 datetime2 数据类型。

注释

从上面释义才醒悟,时间戳 和日期、时间半毛钱关系都没有。 只是个二进制值。哎....  timestamp  大家基本都知道用于并发控制的,但怎么实现 怎么操作呢。?

 

剩下的就不多扯了 : 让我们看看微软是如何介绍 timestamp的并发控制的: 补充下  查询当前数据库时间戳 :   SELECT @@DBTS

CREATE TABLE MyTest2 (myKey int PRIMARY KEY  ,myValue int, TS timestamp);GO INSERT INTO MyTest2 (myKey, myValue) VALUES (1, 0);GO INSERT INTO MyTest2 (myKey, myValue) VALUES (2, 0);GODECLARE @t TABLE (myKey int);UPDATE MyTest2SET myValue = 2  OUTPUT inserted.myKey INTO @t(myKey) WHERE myKey = 1   AND TS = myValue;IF (SELECT COUNT(*) FROM @t) = 0  BEGIN    RAISERROR ('error changing row with myKey = %d'      ,16 -- Severity.      ,1 -- State       ,1) -- myKey that was changed   END;

原标题:关于timestamp的二三事

关键词:

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

可能感兴趣文章

我的浏览记录