注册 登录
编程论坛 SQL Server论坛

求关于MSSQL行锁的疑惑

wxm198427 发布于 2013-12-06 10:20, 488 次点击
如题,大致的疑问就是这样的。说的更详细点:先上语句:
……前面语句
1.begin tran
2.select * from [table] with(updlock) where id=1(比如是这样的)
3.waitfor delay "00:00:10"
4.update [table] set name='某某' where id=1
tran
……后面语句

比如有2个事务几乎同时到达那个设置行锁的这条语句SELECT * FROM [table] WITH (UPDLOCK) WHERE Id=1,但是后来的肯定不能操作,因为先来的已经把相应的行设置了行锁是吧,这个时候,后来的这条只能等待还是什么状态,我想问后来的这条事务走到了SELECT * FROM [table] WITH (UPDLOCK) WHERE Id=1这句后肯定走不下去,因为1的记录被锁定了,我不想等待这个10秒,跳出来走其他的代码?怎么实现?谢谢……

[ 本帖最后由 wxm198427 于 2013-12-6 10:22 编辑 ]
2 回复
#2
wxm1984272013-12-09 11:14
回复 楼主 wxm198427
没有人知道吗?
#3
volte2013-12-09 13:39
这里既然用到了事务去控制,
为什么又用行锁呢,
这样操作对数据在执行事务回滚时候是否会有问题!
仔细斟酌下再下手!!!
1