【问题标题】:Could not allocate space for object dbo.table无法为对象 dbo.table 分配空间
【发布时间】:2013-10-01 11:11:45
【问题描述】:

表的行数只有601条记录。查看数据库我看不出任何问题:初始大小设置为 4Gb,自动增长设置为 1Mb(然后我将其设置为 10%),但这没有任何区别。

无法为数据库 'database' 中的对象 'dbo.Fatawa'.'PK_table' 分配空间,因为 'PRIMARY' 文件组已满。通过删除不需要的文件、删除文件组中的对象、向文件组中添加其他文件或为文件组中的现有文件设置自动增长来创建磁盘空间。

【问题讨论】:

  • 那么实际上还有剩余磁盘空间吗?

标签: sql-server


【解决方案1】:

错误消息告诉您 PRIMARY 文件组 (FG) 已满。在 SQL Server Management Studio (SSMS) 中,右键单击数据库和选择属性。

在文件表中,找到主数据文件 (*.mdf) 并记下位置(驱动器、路径、文件)。

转到 Windows 资源管理器,单击我的电脑图标,注意驱动器。每个驱动器都有可用的总空间和数量。

问题:

驱动器上是否还有剩余空间?如果没有,那是你的问题。

解决方法:

如果数据文件中有剩余空间,请缩小文件。如果没有,请创建一个辅助数据文件。将一些表移动到数据文件中。移动完成后收缩主数据文件。

这是来自 Microsoft 的 Roberto Stefanetti 的脚本。它会将表和索引从一个 FG 移动到另一个。

http://gallery.technet.microsoft.com/scriptcenter/c1da9334-2885-468c-a374-775da60f256f

【讨论】:

    【解决方案2】:

    我使用了存储过程:

    sp_helpdb (DB name)
    

    这表明我的增长规模太小了,所以我改变了它:

      ALTER DATABASE (DB name)
      MODIFY FILE
      (NAME=(DB name),FILEGROWTH=20MB);
    

    【讨论】:

      【解决方案3】:

      在我的情况下,我使用 SQL Server 2005 EXPRESS 版本,它有database limitation to 4 GB max size

      我收到此错误

      无法为对象 'dbo.SORT 临时运行分配空间 storage:440737612283904'在数据库'LargeDB'中,因为'PRIMARY' 文件组已满 通过删除不需要的创建磁盘空间 文件,删除文件组中的对象,将其他文件添加到 文件组,或为现有文件设置自动增长 文件组...

      解决此问题,您需要升级到 SQL Server 版本 2008 R2 Express Database Size Limit Increased to 10GB,或升级您的许可证。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-09-11
        • 1970-01-01
        • 2017-11-21
        • 2014-02-28
        相关资源
        最近更新 更多