SQL2005:
Backup Log {DbName} with no_log '这里的{DbName}是你要收缩的数据库名,自己注意修改下面的数据库名,我就不再注释了。
go
dump transaction {DbName} with no_log
go
USE {DbName}
DBCC SHRINKFILE (2)
Go
SQL2008:
--在SQL2008中清除日志就必须在简单模式下进行,等清除动作完毕再调回到完全模式。
USE [master]
GO
ALTER DATABASE {DbName} SET RECOVERY SIMPLE WITH NO_WAIT
GO
ALTER DATABASE {DbName} SET RECOVERY SIMPLE --简单模式
GO
USE {DbName}
GO
DBCC SHRINKFILE (N'{DbName_Log}' , 11, TRUNCATEONLY)
GO
USE [master]
GO
ALTER DATABASE {DbName} SET RECOVERY FULL WITH NO_WAIT
GO
ALTER DATABASE {DbName} SET RECOVERY FULL --还原为完全模式
GO
这里的{DbName_Log} 如果不知道在sys.database_files里是什么名字的话,可以用以下注释的语句进行查询
USE {DbName}
GO
SELECT file_id, name FROM sys.database_files;
GO