您的位置:首页 > 数据库

SqlServer清理数据库日志

2014-06-19 09:48 218 查看
在SqlServer数据库数据量提升和大量的操作数据库,不免产生很多的数据库日志,可以通过SqlServer自带的作业进行定期的数据库日志清理,代码如下:
--清空所有数据库日志

declare @exec_sql nvarchar(1200),@simple_sql nvarchar(1200),@full_sql nvarchar(1200)
declare @db_name varchar(128)
declare @db_count int
select @db_count=COUNT(1) from sys.databases where database_id >4
declare @j int
set @j =1

while @j<=@db_count
begin
select @db_name=name from (select ROW_NUMBER()
over(order by name)rn,name from sys.databases
where database_id >4 )as tmp where rn=@j
SET @simple_sql=N' use [master] ' + Char(10) + Char(13)
+'ALTER DATABASE ['+@db_name+'] SET RECOVERY SIMPLE WITH NO_WAIT'
EXEC Sp_executesql  @simple_sql,N'@db_name varchar(128)',@db_name

SET @exec_sql=N'USE ['+@db_name+']'+ Char(10) + Char(13)
+'DBCC SHRINKFILE (N'''+@db_name+'_log'' , 0, TRUNCATEONLY)'
EXEC Sp_executesql  @exec_sql,N'@db_name varchar(128)',@db_name

SET @full_sql =N' use [master] ' + Char(10) + Char(13)
+'ALTER DATABASE ['+@db_name+'] SET RECOVERY FULL WITH NO_WAIT'
EXEC Sp_executesql  @full_sql,N'@db_name varchar(128)',@db_name

set @j =@j+1
end
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息