• 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,即可与时间戳 相似

  • 相关阅读:
    一次有教益的程序崩溃调试 (中)
    读书:手工测试与自动测试
    迭代还是交付?
    用Windbg调试.NET程序的资源泄漏
    一次有教益的程序崩溃调试 (上)
    基于云计算的软件测试服务
    Vcastr 3.0 api
    学习Linux三(Linux常用命令及技巧)
    学习Linux六(Linux必学60个命令之【文件处理】)
    学习Linux四(Linux必学60个命令)
  • 原文地址:https://www.cnblogs.com/wuyifu/p/2760947.html
Copyright © 2020-2023  润新知