DECLARE @name VARCHAR(25)
DECLARE @SQL VARCHAR(1000)
DECLARE @logid INT
DECLARE sysdatabase_name CURSOR FOR SELECT name FROM master.dbo.sysdatabases
OPEN sysdatabase_name
FETCH NEXT FROM sysdatabase_name INTO @name
WHILE @@FETCH_STATUS = 0
BEGIN
IF ( @name NOT IN ('xxx')) --不需要进行日志收缩的数据库名
BEGIN
SET @SQL =' DECLARE @logid INT
USE ' + @name+'
SELECT @logid = fileid FROM sysfiles WHERE RIGHT(rtrim(filename),3) = ''ldf''
BACKUP LOG ' + @name+' WITH NO_LOG
DBCC SHRINKFILE (@logid) '
EXEC(@SQL)
END
FETCH NEXT FROM sysdatabase_name INTO @name
END
CLOSE sysdatabase_name
DEALLOCATE sysdatabase_name
压缩SQL SERVER日志代码
最新推荐文章于 2023-12-23 21:24:49 发布
本文提供了一段SQL Server数据库日志文件自动收缩的脚本,通过遍历除特定数据库外的所有数据库并执行日志备份及收缩操作,适用于SQL Server数据库维护场景。
1082

被折叠的 条评论
为什么被折叠?



