SQLSERVER 如何实现select行级锁
在程序中需要实现:第一个用户查询完后讲这条数据锁定,如果第二个用户想要查询相同数据需要等到第一个用户完成其它操作后解锁才能进行查询(排队等待过程);试过rowlock,xlock,貌似没什么效果;有大牛知道其它什么好方法吗?? 数据库多用户并发访问问题 SQLSERVER SELECT行级锁
[解决办法]
举个例子..
-- 建测试表
create table zc
(id int not null,
col1 char(4000),
col2 char(4000)
constraint pk_zc primary key clustered(id)
)
insert into zc
select 1,'aaa','bbb' union all
select 2,'ccc','ddd' union all
select 3,'eee','fff' union all
select 4,'ggg','hhh' union all
select 5,'iii','jjj'
-- 在连线1执行
begin tran
--[查询某条数据]
select * from zc (xlock) where id=2
-- 此时连线2执行 select * from zc (xlock) where id=2 会出现等待.
--[其它操作]
update zc set col1='sss' where id=4
commit tran
-- 此时连线2执行 select * from zc (xlock) where id=2 结果返回.