Solved

Forcing a table lock in SQL Server 2000

Posted on 2010-08-12
4
392 Views
Last Modified: 2012-05-10
We are testing a program change that locks a table when it updates.  There can be multiple requests for this update and we have error handling that does this.  We want to test this functionality before we move it to Production, but I'm having a hard time finding a way to force a table lock so that we can test the error processing.  I have seen a way through bcp, but I'd prefer not to do it that way.  In the query, we are locking using a Transaction and the TABLOCK and HOLDLOCK hints.  This is in SQL Server 2000 accessed through vb.net.

Thanks
0
Comment
Question by:dgoncher
  • 2
  • 2
4 Comments
 
LVL 3

Expert Comment

by:yanoch
ID: 33423187
In your vb app, start a transaction
Then select * from your table
Then sleep // do your tests
Then rollback
0
 

Author Comment

by:dgoncher
ID: 33432378
"In your vb app, start a transaction
Then select * from your table
Then sleep // do your tests
Then rollback"

This did not work.  I started a transaction in vb.net did the select * and a sleep for a minute.  While it was sleeping, I ran the other program which reads then updates the record and it successfully read and updated.

Any other ideas?
0
 
LVL 3

Accepted Solution

by:
yanoch earned 500 total points
ID: 33433250
Just by writing the following in your sql console it will lock from updating :
SET TRANSACTION ISOLATION LEVEL REPEATABLE READ
BEGIN TRANSACTION
select * from youtable

when you want to remove the transaction
COMMIT TRANSACTION

0
 

Author Closing Comment

by:dgoncher
ID: 33433371
This worked thanks.  If anyone else has this issue, make sure you turn off the option in Query Analyzer that disconnects after query executes before you run the SQL.
0

Featured Post

DevOps Toolchain Recommendations

Read this Gartner Research Note and discover how your IT organization can automate and optimize DevOps processes using a toolchain architecture.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Load balancing is the method of dividing the total amount of work performed by one computer between two or more computers. Its aim is to get more work done in the same amount of time, ensuring that all the users get served faster.
For both online and offline retail, the cross-channel business is the most recent pattern in the B2C trade space.
This videos aims to give the viewer a basic demonstration of how a user can query current session information by using the SYS_CONTEXT function
Via a live example, show how to backup a database, simulate a failure backup the tail of the database transaction log and perform the restore.

792 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question