首页 > 数据库 > SQL Server >

用例子来说明SQLServer的更新锁

2016-11-19

用例子来说明SQLServer的更新锁。首先创建表,插入数据:create table table1(A nchar(10) not null primary key,B nchar(10),C nchar(10))。

1:首先创建表,插入数据:

create table table1(A nchar(10) not null primary key,B nchar(10),C nchar(10));

insert into table1(A,B,C) values('a1','b1','c1');

insert into table1(A,B,C) values('a2','b2','c2');

insert into table1(A,B,C) values('a3','b3','c3');

2:打开一个sqlserver的查询窗口,执行下面的代码(使用了更新锁)

begin tran

select * from table1(updlock)

waitfor delay '00:00:30' --等待30秒

update table1 set B='bb' where A='a2'

commit tran

3:打开第二个查询窗口,执行下面的代码。(使用了更新锁)

begin tran

select * from table1(updlock)

commit tran

4:打开第三个查询窗口,执行下面的代码(不使用更新锁)

begin tran

select * from table1

commit tran

5:测试结果,更新锁与更新锁互斥,第二个查询窗口的查询语句要等第一个的事务执行完才会运行,第三个是共享锁,共享锁和更新锁不互斥,第三个查询可以运行,不用等待第一个事务执行完。

截图如下:

1)第一查询窗口:

\

2)第二个查询窗口:

\

3:第三个查询窗口:

\

6:提一个问题,如何在java程序中实现更新锁呢?

相关文章
最新文章
热点推荐