FIX: Deletion May Inappropriately Fill the Transaction Log

This article was previously published under Q243302
This article has been archived. It is offered "as is" and will no longer be updated.
BUG #: 56222 (SQLBUG_70)
BUG #: 56506 (SQLBUG_70)
Under rare circumstances, it is possible that the deletion of records from a table may inappropriately lead to filling the transaction log. If the process is not terminated this may lead to either the disk becoming completely full or one of the following messages occur in the errorlog:
Error 1105
Severity Level 17
Message Text
Could not allocate space for object '%.*ls' in database '%.*ls' because the '%.*ls' filegroup is full.
Error 9002
Severity Level 19
Message Text
The log file for database '%.*ls' is full. Back up the transaction log for the database to free up some log space.
Here are three different ways you can attempt to work around this problem:
  • If you are performing an unqualified delete and there are no transactional requirements then TRUNCATE TABLE may work.
  • DBCC DBREINDEX may work.
  • Use sp_rename to rename the table, recreate the table, and then use INSERT..SELECT to add the data into the table.
Microsoft has confirmed this to be a problem in SQL Server 7.0. This problem has been corrected in U.S. Service Pack 2 for Microsoft SQL Server 7.0. For more information, click the following article number to view the article in the Microsoft Knowledge Base:
254561 INF: How to Obtain Service Pack 2 for Microsoft SQL Server 7.0 and Microsoft Data Engine (MSDE) 1.0
For more information, contact your primary support provider.
More information
Under these rare situations, row deletions of index node pages errantly enter a looping scenario where they repeatedly fail removal yet they reserve space in the transaction log for the potential state change.

Article ID: 243302 - Last Review: 10/26/2013 06:27:00 - Revision: 3.0

  • Microsoft SQL Server 7.0 Standard Edition
  • kbnosurvey kbarchive kbbug kbfix KB243302