FIX: Msg 8964 on Index with IGNORE_DUP_KEY and Row Has a Text Column (281287)



The information in this article applies to:

  • Microsoft SQL Server 7.0
  • Microsoft SQL Server 2000 (all editions)

This article was previously published under Q281287
BUG #: 58041 (SQLBUG_70)
BUG #: 58286 (SQLBUG_70)
BUG #: 58369 (SQLBUG_70)

BUG #: 234551 (SHILOH_bugs)
BUG #: 235869 (SHILOH_bugs)

SYMPTOMS

A DBCC CHECKDB statement will return error message 8964 if all of the following conditions are true:
  • The table has a text column.
  • A unique index with the IGNORE_DUP_KEY clause has been created on the table.
  • A row with a duplicate key is inserted, by using either the bulk copy program (bcp) or the INSERT statement.
The insertion will fail with error 3604, duplicate key ignored, but the following errors will occur when you run DBCC CHECKDB:
Server: Msg 8964, Level 16, State 1, Line 1
Table Corrupt: Object ID 18099105. The text, ntext, or image node at page (1:224), slot 3, text ID 42795008 is not referenced.

RESOLUTION

SQL Server 2000

To resolve this problem, obtain the latest service pack for Microsoft SQL Server 2000. For additional information, click the following article number to view the article in the Microsoft Knowledge Base:

290211 INF: How to Obtain the Latest SQL Server 2000 Service Pack

SQL Server 7.0

To resolve this problem, obtain the latest service pack for SQL Server 7.0. For additional information, click the following article number to view the article in the Microsoft Knowledge Base:

301511 INF: How to Obtain the Latest SQL Server 7.0 Service Pack

STATUS

Microsoft has confirmed that this is a problem in the Microsoft products that are listed at the beginning of this article.

SQL Server 2000

This problem was first corrected in SQL Server 2000 Service Pack 1.

SQL Server 7.0

This problem was first corrected in SQL Server 7.0 Service Pack 3.

Modification Type:MajorLast Reviewed:10/31/2003
Keywords:kbBug kbfix kbSQLServ2000sp1fix KB281287