Select the product you need help with
- Internet Explorer
- Windows Phone
- More products
Space that a table uses is not completely released after you use a DELETE statement to delete data from the table in SQL Server
Article ID: 913399 - View products that this article applies to.
Bug #: 219514 (SQL Server 8.0)
After you use a DELETE statement in Microsoft SQL Server to delete data from a table, you may notice that the space that the table uses is not completely released. When you then try to insert data in the database, you may receive the following error message:
Note TableName represents the name of the table. DatabaseName represents the name of the database that contains the table.
Could not allocate space for object 'TableName' in database 'DatabaseName' because the 'PRIMARY' filegroup is full.
This problem occurs because SQL Server only releases all the pages that a heap table uses when the following conditions are true:
If pages are not deallocated, other objects in the database cannot reuse the pages.
However, when you enable a row versioning-based isolation level in a SQL Server 2005 database, pages cannot be released even if a table-level lock is being held. For more information about row versioning-based isolation levels, see the "Using Row Versioning-based Isolation Levels" topic in SQL Server 2005 Books Online.
To work around this problem, use one of the following methods:
Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.
Article ID: 913399 - Last Review: November 2, 2007 - Revision: 1.2