未能为数据库‘DBName’中的对象‘TableName’分配空间,因为文件组‘primary’已满

解决方案 »

  1.   

    ALTER DATABASE DBName
    ADD FILE 
    ( NAME = DBNamedat3,
      FILENAME = 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\DBNamedat3.ndf',
      SIZE = 5MB,
      MAXSIZE = 100MB,
      FILEGROWTH = 5MB)
    TO FILEGROUP primary
      

  2.   

    数据库中设置的是“文件增长不受限制”。且文件增长按照10%的速度增加。
    SQL SERVER 中允许的数据库最大容量是多少?
    Primary文件组对它有什么影响?
    谢谢!!!
      

  3.   

    确认数据文件放在NTFS分区而不是FAT32分区上
      

  4.   

    to iwl() 
    硬盘空间还有23G。
    to vivianfdlpw() 
    确认数据文件放在NTFS分区而不是FAT32分区上这个有什么说法?
      

  5.   

    同问,我刚刚也遇到这个问题
    莫非2楼所说的Primary文件组的size太小了?
    我刚刚做了个试验,一个表,有自增量字段ID,为主键,表中有51360条数据
    我将ID删了,再重新建立就出问题了:
    'tOperateLog' 表
    - 不能创建索引 'PK_tOperateLog'。  
    ODBC 错误: [Microsoft][ODBC SQL Server Driver][SQL Server]未能为数据库 'OCRSDB' 中的对象 'tOperateLog' 分配空间,因为文件组 'PRIMARY' 已满。
    [Microsoft][ODBC SQL Server Driver][SQL Server]未能创建约束。请参阅前面的错误信息。
    [Microsoft][ODBC SQL Server Driver][SQL Server]警告: 已创建表 'tOperateLog',但其最大行大小(8095)超过了每行的最大字节数(8060)。如果结果行长度超过 8060 字节,则此表中行的 INSERT 或 UPDATE 将失败。
    [Microsoft][ODBC SQL Server Driver][SQL Server]语句已终止。
    不太明白。
      

  6.   

    alter database 数据库名
    modify file
    (
      name = test_data,
    /*--这里的数据库名不是mdf的filename,你必须通过exec sp_helpdb查到你的数据库的主文件的命名,然后修改.---*/
      size = 20,
    /*--这里定义的尺寸一定要大于第一次定义的尺寸---*/
      maxsize = unlimited,
      filegrowth = 10%
    )
      

  7.   

    回答Daniel0318(深水炸弹)
    在win2000server版本中,如果为ntfs,那么允许数据库的大小为驱动器大小-64kb.如果不安其他软件的话,换句话说,也就是没有限制的!一直到把磁盘撑满!
      

  8.   

    问题解决了,硬盘分区格式果然是fat32,windows对单个文件的大小有要求,新增加一个数据文件就OK了。