首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

SQL 的独占有关问题

2013-02-20 
SQL 的独占问题各位大神,求救了!在SQL上,我针对一张表一条数据进行独占,但意外的其中的另一条数据也被独占

SQL 的独占问题
各位大神,

求救了!
在SQL上,我针对一张表一条数据进行独占,但意外的其中的另一条数据也被独占了!
但我的查询中没有写到独占那一个,
这是什么情况?

具体:
这是我独占A
BEGIN TRANSACTION
SELECT Number FROM NumberTable
 WITH(UPDLOCK,NOWAIT)
WHERE Number = 'A'
COMMIT TRANSACTION

但当我想独占B的时候,他却说我已经独占了!

BEGIN TRANSACTION
SELECT Number FROM NumberTable
 WITH(UPDLOCK,NOWAIT)
WHERE Number = 'B'

错误提示:Lock request time out period exceeded.

求大神帮帮忙,谢谢!


[解决办法]
楼主,有种可能是索引行中的KeyHashValue值生成了重复值,这种的结果就是你锁定一行,相同值的其他行也会一起锁定。

对于解释KeyHashValue值可能说的要很多,你先重建下你的索引,让它们重新生成一遍KeyHashValue值即可,不妨先试试,如果重建解决你的问题,那很有可能就出在这里了

热点排行