SQLServer 数据库 DROP Table 和 TRUNCATE Table 时数据文件大小均不会有变化。
情况一收缩:如果此时收缩数据库或者收缩数据文件,数据文件大小会变化。
情况二不收缩:如果再往数据库里插入数据(不管是被删除的表还是数据库里其他的表),只要新插入的数据量大小不超过删除的数据量大小,SQLServer 数据库数据文件大小不会有变化。即可以理解为 新插入的数据 写在了 被原删除的数据的数据页。当插入的数据量大于删除的数据量大小,数据文件会再次增长。
备注:数据库设置为自动收缩,删除表 时 也没有收缩数据文件(经过一段时间,会自动收缩。网上说是半个小时,自己测试为10分钟)。在运行大数据量处理时,tempdb数据库文件也会扩展,在收缩数据文件时,也要收缩下empdb数据库文件。
delete 时不能完全释放表和索引以及他们申请的页面。truncate则可以。 可用 dbcc showcontig('aaaa')命令 查看。