我有一个31 GB的数据库,我从一个项目的客户那里得到的。我正在编码并将数据库保存在一个80gbwin7vm中。我得到了数据库文件并从中导入了数据库,发现空间主要被一个表占用,其中有24万个图像。我放弃了其中的大多数行,现在有29000 MB可用空间。我无法执行很多功能,因为驱动器已降到最后几GB,还有很多记录需要修改(我正在更改多个表中的数据类型,但仍会出现活动的\u事务错误)。它不会通过DBCC_SHRINKDATABASE(0)Tasks > Shrink > Database或文件缩小。我第一次得到它时,它只缩小到数据库的大小。我怎样才能让它释放空间?如果可以,我可以将仍然存在的数据导出到一个较小的数据库中,然后从中恢复吗?
正在运行SQL Server 2012和Management Studio。
谢谢,
托尼

最佳答案

不能低于初始大小设置。如果数据库的初始大小设置为50GB,那么MDF将始终至少为50GB,即使29GB是空闲/可用的。
如果您确实有空闲空间,可以将初始大小设置降低到一个更合理的值,但如果MDF将再次自动增长,则不建议这样做,因为这会导致较高的开销。
为此,您可以使用dbcc shrinkdatabase
更多信息请参见here

关于sql - SQL Server数据库不会缩小,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31750397/

10-15 15:54
查看更多