zoukankan      html  css  js  c++  java
  • SQL Server时间戳并发 .

    在SQL Server中联机丛书是这样说的:

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

    我用口水话解释一下便于理解:

    我们知道数字类型有个“标识”属性,设置好“标识种子”、“标识递增量”,每增加一条记录时,这个字段的值就会在最近的一个标识值基础上自动增加,这样我们可以知道哪些记录是先添加的,哪些记录是后添加的,但是我们无法知道哪些记录修改过。timestamp这个类型的字段呢,每增加一条记录时,它会在最近的一个时间戳基础上自动增加,当修改某条记录时,它也会在最近的一个时间戳基础上自动增加,所以我们就知道哪些记录修改过了。

    通过 时间戳 控制并发:

    显示数据时先取出timestamp到变量,更新、删除操作时先比较变量和现在的timestamp。一样则可操作 否则不允许。

    将timestamp转成10进制----select convert(bigint,tstamp) ts from table_name;

    控制并发的另一种方法:

    可以定义一个 字段做mark,前提要写一个触发器,当更新或新增时mark自动加1,即可与时间戳 相似

  • 相关阅读:
    Java 传递参数时,传递一个变量快还是传递一个实体类?
    13 设计模式
    12 反射
    11.多线程&&并发
    10.输入输出
    9.异常Exception
    7.正则表达式
    5.数组
    6.常见对象
    上传本地项目到Github
  • 原文地址:https://www.cnblogs.com/wuyifu/p/2760947.html
Copyright © 2011-2022 走看看