BUG: Err Msg 549 When Adding Foreign Key on Primary Key Column

ID: Q153224


The information in this article applies to:
  • Microsoft SQL Server versions 6.0, 6.5

BUG# 13578 (6.0, 6.50) (sqlserver)

SYMPTOMS

Adding a foreign key constraint on a primary key column using ALTER TABLE can fail with the following error:

Msg 549, Level 16, State 2: data exists in table '<db name>', database '<table>', that violates FOREIGN KEY constraint '<constraint name>' being added ALTER command has been aborted



This problem occurs when the child table has a multicolumn primary key already defined and both primary keys for the child and parent tables use non-clustered indexes.

The problem does not occur if:
  • The foreign key constraint was created using CREATE TABLE.


  • The foreign key column was not part of a primary key.


  • Both parent and child tables have primary keys that use clustered indexes.



WORKAROUND

Any of the following will allow you to work around the problem:
  • Create the foreign key constraint using CREATE TABLE.


  • Drop the existing primary key constraint on the child table , alter the table to create the foreign key constraint, and then recreate the primary key constraint.


  • Use clustered indexes for primary key of parent and child table.



STATUS

Microsoft has confirmed this to be a problem in Microsoft SQL Server version 6.0 and Microsoft SQL Server 6.5. This problem does not occur in Microsoft SQL Server 6.5 U.S. Service Pack 2. For more information, contact your primary support provider.

Additional query words: sysconstraints sysreferences

Keywords : kbbug6.50 kbbug6.00
Version : 6.0 6.5
Platform : WINDOWS
Issue type :


Last Reviewed: March 31, 1999
© 2000 Microsoft Corporation. All rights reserved. Terms of Use.