2008以后的版本
--设置为简单模式
ALTER DATABASE 数据库名 SET RECOVERY SIMPLE;
GO
-- 将日志文件压缩到1 MB. 数据库日志文件名查sys.sysfiles表的日志文件的name字段
DBCC SHRINKFILE ('数据库日志文件名', 1);
GO
-- 还原为完全模式
ALTER DATABASE 数据库名 SET RECOVERY FULL;
GO
SELECT * FROM sys.sysfiles;
2008以前的
declare @db nvarchar(20)
set @db='你的数据库名称'
dump transaction @db with no_log
backup log @db with no_log
dbcc shrinkdatabase(@db)
前几天我的数据库SQL server 报日志满错误,于是变改了log.ldf的空间为20G,虽然不报错了,但占了硬盘很大空间啊,还要备份数据库呢.这样我就在网上搜索到上面脚本,在确定数据库目前运行稳定,不需要查询以前日志的情况下,执行了上述脚本,结果20G的.LDF文件变成了0.9G.数据库运行稳定.