Debugging the following statement will find that the Slect statement without the plus (NOLOCK) will wait for the lock to be queried
BEGIN TRAN//Add and Subtract Tablockx (table Lock) When selected, SQL Server will place an exclusive lock on the entire table until the command or transaction ends. This prevents other processes from reading or modifying the data in the table.
SELECT * from Student holds shared locks, no waiting, shared
Update Student Set stuname = 66666 where stuid=1001
Rollback Tran
With (NOLOCK) SQL Server does not add any locks when reading or modifying data. In this case, it is possible for the user to read the data in the incomplete transaction (uncommited Transaction) or rollback (roll back), known as "dirty data."
SELECT * from Student with (NOLOCK)
The following will wait (the table lock) to release
SELECT * FROM Student
Specific View http://blog.csdn.net/jqrsdsy/article/details/19618931
SQL query optimization