SQL查询间歇性地不返回任何结果

Ghl*_*ouw 3 sql sql-server

我有一个非常直接的选择查询,如下所示:

SELECT * FROM PWCWarehouse (nolock) WHERE PWCWarehouseID = 4

这个查询被大量调用,并且大多数时候它返回记录就好了,但偶尔也没有返回任何内容,即使记录仍然存在.这可能是什么原因?可能是因为正在更新记录的其他进程锁定?我一直在尝试不同的隔离级别,目前有隔离级别= RepeatableRead,以便可以读取易失性数据?

此表中只有6条记录,它们永远不会增加或减少,此表上的唯一操作是上面的读取和更新.

有什么想法在这里发生了什么?

JNK*_*JNK 5

这几乎肯定是一个锁定问题.

如果你是在同一时间更新该记录(潜在的)如你想读它,你应该使用NOLOCK提示,因为这将允许脏读.

如果记录已被删除并正在插入,或者已经更新但未提交,则您的SELECT使用将无法看到该记录NOLOCK.