首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

sqlserver不同版本的清日志有关问题。请问

2013-09-06 
sqlserver不同版本的清日志问题。请教。很奇怪,以下这段代码,在 sqlserver2000, sqlserver2005 下是可以清数

sqlserver不同版本的清日志问题。请教。
很奇怪,以下这段代码,在 sqlserver2000, sqlserver2005 下是可以清数据库日志的。
但在 sqlserver2008 下就报错,清不了。

(以上经过多次测试都是这样)

不知为何?  sqlserver2008下清数据库日志又应用什么可行代码呢? 谢谢!

附代码:

Backup log databasename With no_log 
Backup log databasename  With truncate_only 
dbcc ShrinkDataBase('databasename') 数据库
[解决办法]

--适用于SQL Server 2008

USE[master]
GO
ALTER DATABASE [test] SET RECOVERY SIMPLE WITH NO_WAIT
GO
ALTER DATABASE [test] SET RECOVERY SIMPLE
GO

USE[test]
GO
DBCC SHRINKFILE (N'test_log' , 0, TRUNCATEONLY)
GO

USE[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表示全部清空
再把数据库还原为正常模式

[解决办法]
引用:
很奇怪,以下这段代码,在 sqlserver2000, sqlserver2005 下是可以清数据库日志的。
Backup log databasename With no_log 
Backup log databasename  With truncate_only 
dbcc ShrinkDataBase('databasename')


--建议用下面三句
dump transaction databasename with no_log 
backup log databasename with no_log
dbcc shrinkdatabase(databasename)

热点排行