Sqlserver 提示无法数据库“XXX”中的对象"XXX"."PK_XXX"分配空间,文件组已满,请删除不需要的文件

异常如下:

[17:19:53,289] System.Exception: AddFile()错误, 
result=System.Data.Entity.Infrastructure.DbUpdateException:
 更新条目时出错。有关详细信息,请参见内部异常。 --->
  System.Data.UpdateException: 更新条目时出错。有关详细信息,
  请参见内部异常。  ---> System.Data.SqlClient.SqlException: 
  无法为数据库 'EvaluateDB' 中的对象 valuateV2.UpdateLogs'.'PK_UpdateLogs' 分配空间,因为 'PRIMARY' 文件组已满。请删除不需要的文件、删除文件组中的对象、将其他文件添加到文件组或为文件组中的现有文件启用自动增长,以便增加可用磁盘空间。

问题原因

可能是:
1.当前数据库所在的磁盘空间已满
2.文件组没有设置自动增长
3.没有设置自动增长

解决方案

对应数据库执行一下语句

use 数据库名称--你的数据库名称
go

--看看你的primary组里的文件

select ds.name,
       df.physical_name,  --主文件组的物理文件的路径
                          --打开我的电脑,查看文件所在盘,是否磁盘已满
                          
       df.is_percent_growth, --是否自动增长
       df.growth             --增长多少
from sys.data_spaces ds
inner join sys.database_files df
        on ds.data_space_id = df.data_space_id
where ds.name = 'primary';

--物理文件所对应的逻辑名称,上面的语句就可以查询到
ALTER DATABASE wcf 
MODIFY FILE ( NAME = 'WCF', FILEGROWTH = 10%)

执行结果如下:
在这里插入图片描述

磁盘空间已满

查看结果physical_name的盘目录为D盘,查看D盘空间是否满了即可。
满了的情况下,如果云服务器,在对应的云服务器上可以增加对应盘的内存空间。

文件组未设置自动增长

执行以下语句


ALTER DATABASE 数据库名称 
MODIFY FILE ( NAME = '数据库名称, FILEGROWTH = 10%)

Name如果直接写数据库名称报错的话,可以尝试-主文件组的物理文件的路径,物理文件所对应的逻辑名称,上面的语句就可以查询到
在这里插入图片描述

没有设置自动增长

可以更改数据库设置方案

1、使用 MSSqlserver Management Studio 连接数据库

2、在需要更改的数据库上点击右键,选择属性

3、依次选择文件->Primary组的自动增长设置->最大文件大小设置为无限制
在这里插入图片描述
在这里插入图片描述
中文版本
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值