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

本文解决了一个常见的数据库更新异常问题,当遇到System.Data.Entity.Infrastructure.DbUpdateException错误时,通常是因为数据库文件组已满。文章提供了检查磁盘空间、调整文件组自动增长设置及增加云服务器磁盘空间的方法。

异常如下:

[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组的自动增长设置->最大文件大小设置为无限制
在这里插入图片描述
在这里插入图片描述
中文版本
在这里插入图片描述

要在项目中导入`ry_configxxx.sql`文件到新建的`ry-config`数据库中,可以按照以下步骤进行操作: 1. **新建ry-config数据库**: - 打开你的数据库管理工具(如MySQL Workbench、phpMyAdmin等)。 - 连接到你的数据库服务器。 - 创建一个新的数据库,命名为`ry-config`。 2. **导入ruoyi项目中ry_configxxx.sql**: - 打开数据库管理工具。 - 选择刚才创建的`ry-config`数据库。 - 找到导入选项(通常在工具栏或右键菜单中)。 - 选择`ry_configxxx.sql`文件并开始导入过程。 以下是一些常见数据库管理工具的具体操作步骤: ### MySQL Workbench 1. 打开MySQL Workbench并连接到你的数据库服务器。 2. 在左侧的“Schemas”面板中,右键点击空白处,选择“Create Schema...”。 3. 输入数据库名称`ry-config`,然后点击“Apply”。 4. 在左侧的“Schemas”面板中,找到新创建的`ry-config`数据库,右键点击选择“Set as Default Schema”。 5. 点击顶部菜单栏的“Server” -> “Data Import”。 6. 选择“Import from Self-Contained File”并浏览选择`ry_configxxx.sql`文件。 7. 在“Default Target Schema”中选择`ry-config`,然后点击“Start Import”。 ### phpMyAdmin 1. 打开phpMyAdmin并登录。 2. 在左侧面板中,点击“New”创建一个新的数据库,输入数据库名称`ry-config`,然后点击“Create”。 3. 在左侧面板中,点击新创建的`ry-config`数据库。 4. 点击顶部的“Import”标签。 5. 点击“Choose File”按钮,选择`ry_configxxx.sql`文件。 6. 点击“Go”按钮开始导入。 ### 命令行工具 1. 打开命令行工具并连接到数据库服务器: ```bash mysql -u your_username -p ``` 2. 输入密码并登录。 3. 创建新的数据库: ```sql CREATE DATABASE ry-config; ``` 4. 导入`ry_configxxx.sql`文件: ```bash mysql -u your_username -p ry-config < path_to_ry_configxxx.sql ``` 通过以上步骤,你可以成功导入`ry_configxxx.sql`文件到新建的`ry-config`数据库中。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值