Row Locking

By Bill Graziano on 13 August 2000 | Tags: Locking

"I wish to keep some rows locked on my sql7 table (so that nobody modifies them until i am finished with it) until my vb6 form in question is closed. I do not want to store any status code within the table (which calls for addl. maintenance, for eg if my w/s boots with the status code still set!) How do i achieve this rowlock for extended period of time? Any clues???" Yep, we can handle this one. We'll use some locking hints.

Change your SELECT statement to look something like this:


FROM authors
WHERE au_id = '274-80-9391'

/* Do all your stuff here while the record is locked */


The HOLDLOCK hint will instruct SQL Server to hold the lock until you commit the transaction. The ROWLOCK hint will lock only this record and not issue a page or table lock.

The lock will also be released if you close your connection or it times out. I'd be VERY careful doing this since it will stop any SELECT statements that hit this row dead in their tracks. SQL Server has numerous locking hints that you can use. You can see them in Books Online when you search on either HOLDLOCK or ROWLOCK.

Related Articles

Application Locks (or Mutexes) in SQL Server 2005 (7 January 2008)

Introduction to Locking in SQL Server (12 December 2007)

SQL Server Lock Contention Tamed: The Joys Of NOLOCK and ROWLOCK (11 October 2000)

Avoid Locking Conflicts (18 September 2000)

Other Recent Forum Posts

Checkmark for guaranteed SR = WR (12h)

How to connect to git in SQL Server 2016/2017 without using any third party tool (12h)

Sql restart (17h)

Excel column wise data save in rows (1d)

Date timzone conversion (2d)

Object cannot be cast from DBNULL to other types coming randomly in SSIS Package-Migrated from VS 2008 to 2015,SQL 2008R2 to SQL2016 on 1st run only (2d)

Error in sp procedure- Msg 50000, Level 16, State 1, Procedure spCheckDBInfo, Line 193 [Batch Start Line 0 (2d)

Two records into a single record? (2d)

- Advertisement -