你目前正处于脱机状态,正在等待 Internet 重新连接

表使用的空间不完全释放后您可以使用 DELETE 语句删除 SQL Server 在表中的数据

Extended support for SQL Server 2005 ends on April 12, 2016

If you are still running SQL Server 2005 after April 12, 2016, you will no longer receive security updates and technical support. We recommend upgrading to SQL Server 2014 and Azure SQL Database to achieve breakthrough performance, maintain security and compliance, and optimize your data platform infrastructure. Learn more about the options for upgrading from SQL Server 2005 to a supported version here.

注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。

点击这里察看该文章的英文版: 913399
错误 #: 219514 (SQL Server 8.0)
症状
若要删除一个表中的数据中 Microsoft SQL Server 使用 DELETE 语句后,您可能会注意到不完全释放表使用的空间。当您然后试图在数据库中插入数据时,您可能会收到以下错误消息:
无法分配空间的数据库中的对象 TableNameDatabaseName,因为 PRIMARY 的文件组已满。
注意TableName 值,该值代表表格的名称。DatabaseName 值,该值代表包含表的数据库的名称。
原因
因为 SQL Server 只释放一个堆表使用以下条件为真时的所有页面,就会出现此问题:
  • 此表上的删除时发生。
  • 表级锁正被使用。
注意堆表是不是聚集索引与相关联的任何表。

如果页未被释放,在数据库中的其他对象不能重新使用该页面。

但是时启用了 SQL Server 2005 数据库中的行基于版本控制的隔离级别, 页不能是即使释放表级锁正被使用。有关行基于版本控制的隔离级别的详细信息,请参阅"使用行版本控制基于的隔离级别"主题中 SQL Server 2005 丛书联机。
替代方法
要变通解决此问题,请使用下列方法之一:
  • DELETE 语句中包括了 TABLOCK 提示,如果未启用行基于版本控制的隔离级别。例如对于使用与以下内容类似的语句:
    DELETE FROM <TableName> WITH (TABLOCK)
    注意<TableName> 值,该值代表表格的名称。
  • 如果您想要删除表中的所有记录,请使用 TRUNCATE TABLE 语句。例如对于使用与以下内容类似的语句:
    TRUNCATE TABLE <TableName>
  • 表的列上创建聚集的索引。有关如何在表上创建聚集的索引的详细信息请参阅 SQL Server 联机丛书中的创建一个聚集索引"主题。
状态
Microsoft 已经确认这是在"适用于"一节中列出的 Microsoft 产品中的问题。

属性

文章 ID:913399 - 上次审阅时间:11/02/2007 09:50:43 - 修订版本: 1.2

Microsoft SQL Server 2005 Standard Edition, Microsoft SQL Server 2005 Developer Edition, Microsoft SQL 2005 Server Enterprise, Microsoft SQL Server 2005 Express Edition, Microsoft SQL 2005 Server Workgroup, Microsoft SQL Server 2000 标准版, Microsoft SQL Server 2000 Desktop Engine (Windows), Microsoft SQL Server 2000 Developer Edition, Microsoft SQL Server 2000 Enterprise Edition, Microsoft SQL Server 2000 Personal Edition, Microsoft SQL Server 7.0 标准版

  • kbmt kbexpertiseadvanced kbprb KB913399 KbMtzh
反馈