SqlServer 2000/2005 数据库维护--数据库日志截断脚本--可部署成--定时作业

use master

declare @logname varchar(8000),@dbname varchar(8000)

declare @SqlTxt varchar(8000)

DECLARE bk_cursor CURSOR FOR
select t2.name as logname,t1.name as dbname from sysaltfiles t2 inner join sysdatabases t1 on t1.dbid=t2.dbid where t2.fileid=2   and t1.mode=0
and t1.name in('C_OfficePlatForm','CCHQLogSegmentation','NetPort')

OPEN bk_cursor

FETCH NEXT FROM bk_cursor into @logname,@dbname

WHILE @@FETCH_STATUS = 0
BEGIN
         set @SqlTxt = 'use ' + @dbname + '; '
         set @SqlTxt = @SqlTxt + 'BACKUP LOG  ' + @dbname + ' with no_log; '
         set @SqlTxt = @SqlTxt + 'DBCC SHRINKFILE (' + rtrim(@logname) + ',1048)'
        
         exec(@SqlTxt)

         FETCH NEXT FROM bk_cursor into @logname,@dbname
END

CLOSE bk_cursor
DEALLOCATE bk_cursor

GO

posted @ 2014-12-02 16:06  m天下  阅读(112)  评论(0编辑  收藏  举报