第一步:运行下面SQL
select 'select '''+[name]+''' dbmc,[name],[filename],convert(float,size) * (8192.0/1024.0)/1024 sizes from ['+[name]+'].dbo.sysfiles union all' From master.dbo.sysdatabases where dbid>4
第二步:拷贝第一步运行结果到下面语句括号里面
select dbmc 数据库名称,[name] 逻辑名称,[filename] 文件路径,case when sizes>1024 then cast(Round(sizes/1024.00,3) as nvarchar(20))+' G' else cast(Round(sizes/1.00,3) as varchar(20))+' M' end 文件大小 from(拷贝第一步运行所有结果去除最后一个 union all ) dballs
运行结果:
第三步:清理日志(把下面test换为你的数据库名称)
declare @dbName nvarchar(20);
set @dbName='test';
DUMP TRANSACTION @dbName WITH NO_LOG;
-- 第二步:截断事务日志
BACKUP LOG @dbName WITH NO_LOG
-- 第三步:收缩数据库
dbcc SHRINKDATABASE (@dbName)