lock 是锁,塞住的意思,那么nolock就是没有锁,不堵塞的意思。
SQL SERVER 查询器窗口在每次新建一个查询,就相当于创建了一个会话。在不同的查询窗口操作,会影响到其他会话的查询。当一个窗口对某张表正在写数据时,在另一个查询窗口上去查询这张表很可能就会一直处于阻塞状态。
当我们在表名后面加上(nolock)或者with(nolok)关键字后,它就能够查询出数据了。
但是加上(nolock) 关键字后有一个缺点就是会在select 的时候会读取到已插入但是没有保存的数据,如果是查询历史数据的话,那这个影响倒不大。
(NOLOCK)与WITH(NOLOCK)其实功能上是一样的。(NOLOCK)只是WITH(NOLOCK)的别名。