zoukankan      html  css  js  c++  java
  • 关于sql中的with(nolock)

    SQL Server 中的 NOLOCK 究竟是什么意思

    一般用于此类语句中:select * from t with(NOLOCK)
    nolock是不加锁查询。能够读取被事务锁定的数据,也称为脏读。


    说明:
    使当前会话的查询,不受其他会话的事务所堵塞。
    可是这样做,就读取了其他事务的“改动后未提交的”数据。
    也就是同意“READ UNCOMMITTED”


    以下举例说明:

    在sqlserver中打开一个窗体:

    写下例如以下语句:

    begin tran 
      update STUDENT set sname='111111' 
      waitfor delay '0:0:10'
      update STUDENT set sname='222222'
    commit tran

    在sqlserver中打开还有一个窗体:

    写下例如以下语句:

     select * from student with(nolock)
    先运行第一个窗体,10秒内运行第二个窗体(最好2秒后。不要太快。由于第一个窗体运行须要一定的时间)

    会查询到的结果是sname = '111111'

    假设把第二个窗体的sql语句改为:

     select * from student
    则,第二个窗体不会马上返回。他会等到第一个窗体运行完成之后。再进行查询,返回结果sname = '222222'



  • 相关阅读:
    redis安装以及php扩展
    Linux下php安装Redis扩展
    正则验证邮箱
    常用方法
    PHPExcel说明
    冒泡排序
    CURL post请求
    PHP生成随机字符串
    PHP中的字符串函数
    PHP中的数组函数
  • 原文地址:https://www.cnblogs.com/slgkaifa/p/7043448.html
Copyright © 2011-2022 走看看