FIX: Concurrent CREATE TABLE & ALTER TABLE May Cause Deadlock

ID: Q159782


The information in this article applies to:

BUG #: 16016 (WINDOWS: 6.50)

SYMPTOMS

If you perform a CREATE TABLE and an ALTER TABLE ADD CONSTRAINT concurrently, you may receive deadlocks on system tables.


WORKAROUND

To work around this problem, place the ALTER TABLE in a user transaction preceded by a SELECT (UPDLOCK) on syscolumns and sysindexes, as shown below:


   begin tran
   select count(*) from syscolumns(UPDLOCK) where id=object_id('TT1a')
   select count(*) from sysindexes(UPDLOCK) where id=object_id('TT1a')
   alter table TT1a add constraint TT1idx1a PRIMARY KEY (a, b, c, d, e, f,
   g, h)
   commit tran 


STATUS

Microsoft has confirmed this to be a problem in Microsoft SQL Server versions 4.2x, 6.0, and 6.5. This problem has been corrected in U.S. Service Pack 2 for Microsoft SQL Server version 6.5. For more information, contact your primary support provider.

Additional query words: LOCK BLOCK


Keywords          : kbusage SSrvGen kbbug6.50 kbbug4.2x kbbug6.00 kbfix6.50.sp2 
Version           : 4.2x 6.0 6.5
Platform          : WINDOWS 
Issue type        : 

Last Reviewed: April 4, 1999