Updates are issued through a single database connection including updates that reference a cursor (for example, in an UPDATE WHERE CURRENT OF cursor_name statement). Because of this, locking conflicts do not occur between updates that are issued under the same CONNECT TO, SET CONNECT, or default connection.
Each cursor's retrieval operations are performed through a separate database connection.
The following situations block cursors:
When the cursor attempts to read a page that contains an uncommitted change (made by anyone, including the cursor owner), the cursor waits until the change is committed.
Note
SQL Server internally performs locking at the page level rather than at the row level. This means that a second operation can be locked out by the first cursor operation even though the operations are accessing different rows.