很奇怪,以下这段代码,在 sqlserver2000, sqlserver2005 下是可以清数据库日志的。
但在 sqlserver2008 下就报错,清不了。(以上经过多次测试都是这样)不知为何? sqlserver2008下清数据库日志又应用什么可行代码呢? 谢谢!附代码:Backup log databasename With no_log
Backup log databasename With truncate_only
dbcc ShrinkDataBase('databasename')数据库
但在 sqlserver2008 下就报错,清不了。(以上经过多次测试都是这样)不知为何? sqlserver2008下清数据库日志又应用什么可行代码呢? 谢谢!附代码:Backup log databasename With no_log
Backup log databasename With truncate_only
dbcc ShrinkDataBase('databasename')数据库
GO
ALTER DATABASE [test] SET RECOVERY SIMPLE WITH NO_WAIT
GO
ALTER DATABASE [test] SET RECOVERY SIMPLE
GOUSE[test]
GO
DBCC SHRINKFILE (N'test_log' , 0, TRUNCATEONLY)
GOUSE[master]
GO
ALTER DATABASE [test] SET RECOVERY FULL WITH NO_WAIT
GO
ALTER DATABASE [test] SET RECOVERY FULL
GO
DBCC SHRINKFILE (N'test_log' , 0, TRUNCATEONLY) -->中间的参数0表示把日志清空到多少以内,0表示全部清空
再把数据库还原为正常模式
--建议用下面三句
dump transaction databasename with no_log
backup log databasename with no_log
dbcc shrinkdatabase(databasename)