我有一个有很多未使用空间的 SQL 数据库。但是,当我运行 Tasks | 收缩| 数据库和任务 | 收缩| 来自管理工作室的文件它没有释放任何空间。
不幸的是,运行它的机器的硬盘空间不足。关于为什么这个空间没有释放的任何想法。
DB 上的恢复模式也设置为简单。

这是我缩小文件时出现的未使用对话框:

我也试过通过 T-SQL 做到这一点
DBCC SHRINKDATABASE (myDatabase, 5);
我得到以下回应:
DBCC SHRINKDATABASE:数据库 ID 6 的文件 ID 1 被跳过,因为该文件没有足够的可用空间来回收。DBCC SHRINKDATABASE:数据库 ID 6 的文件 ID 2 被跳过,因为该文件没有足够的可用空间来回收。DBCC 执行完成。如果 DBCC 打印错误消息,请联系您的系统管理员。
我在 SQL Server 2012 Express 中有一个表,有很多未使用的空间。
我需要释放数据库中的空间。
| 姓名 | 行 | 保留 | 数据 | INDEX_SIZE | 未使用 | |-------------|--------|--------------|----------- ---|------------|--------------| | 我的表名 | 158890 | 8928296 KB | 5760944 KB | 2248 KB | 3165104 KB |
如何让 SQL 释放 3165104KB?
我已经试过了:
Alter table MyTableName Rebuild
DBCC CLEANTABLE (MyDbName,"MyTableName ", 0)
ALTER INDEX ALL ON MyTableName REORGANIZE ;
ALTER INDEX PK_Image ON MyTableName REBUILD WITH (ONLINE = OFF)
Run Code Online (Sandbox Code Playgroud)
这是表:
CREATE TABLE [dbo].[MyTableName](
[ImageID] [int] IDENTITY(1,1) NOT NULL,
[DateScan] …Run Code Online (Sandbox Code Playgroud)