FIX: Concurrent CREATE TABLE & ALTER TABLE May Cause Deadlock (159782)
The information in this article applies to:
- Microsoft SQL Server 4.2x
- Microsoft SQL Server 6.0
- Microsoft SQL Server 6.5
This article was previously published under Q159782
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.
Modification Type: | Major | Last Reviewed: | 11/14/2003 |
---|
Keywords: | kbBug kbfix kbusage KB159782 |
---|
|