南宁建设厅官方网站,网站模板 阿里,html模板网站推荐,龙元建设集团有限公司网站说明#xff1a;SQL数据库日志经常过大#xff0c;引起很多问题#xff0c;网上很多清理日志的方法#xff0c;但都比较麻烦#xff0c;并且不能一次性清理所有数据库。如果有几十个数据库要清理#xff0c;一个个手工来#xff0c;想必非常麻烦。 以下代码清除 除了指定…说明SQL数据库日志经常过大引起很多问题网上很多清理日志的方法但都比较麻烦并且不能一次性清理所有数据库。如果有几十个数据库要清理一个个手工来想必非常麻烦。 以下代码清除 除了指定的master, msdb, tempdb, model, ReportServerTempDB, ReportServer 以外的所有数据库的日志。
自己可以指定哪些数据库不处理。 不说了直接上代码懒人自有懒人的办法在sql2012上测试通过其它版本数据库自行测试 USE [master]------------遍历所有用户数据库 进行日志清理------------------------------------------------------------------- DECLARE SQL AS NVARCHAR(4000) DECLARE DATABaseName AS NVARCHAR(50) DECLARE My_Cursor CURSOR --定义游标 FOR(SELECT NAMEFROM sys.databasesWHERE NAME NOT IN (master, msdb, tempdb, model, ReportServerTempDB, ReportServer)) --查出需要的集合放到游标中OPEN My_Cursor; --打开游标FETCH NEXT FROM My_Cursor INTO DATABaseName; --读取第一行数据 WHILE FETCH_STATUS 0BEGINSET SQL USE DATABaseName --查询出数据库对应的日志文件名称DECLARE strDBName AS NVARCHAR(500)DECLARE strLogName AS NVARCHAR(500)DECLARE strSQL AS VARCHAR(1000)DECLARE DBLogSise AS INT 2SELECT strLogName B.name,strDBName A.nameFROM MASTER.sys.databases AS AINNER JOIN sys.master_files AS BON A.database_id B.database_idWHERE A.database_id DB_ID() SET strSQL --设置数据库恢复模式为简单ALTER DATABASE [ strDBName ] SET RECOVERY SIMPLE;--收缩日志文件DBCC SHRINKFILE ( strLogName , CONVERT(VARCHAR(20), DBLogSise));--恢复数据库还原模式为完整ALTER DATABASE [ strDBName ] SET RECOVERY FULL EXEC (strSQL)EXEC (SQL) PRINT 清理 DATABaseName 日志完成FETCH NEXT FROM My_Cursor INTO DATABaseName; --读取下一行数据ENDCLOSE My_Cursor; --关闭游标DEALLOCATE My_Cursor; --释放游标PRINT -----------清理日志完成--------------------- CONVERT(VARCHAR(100), GETDATE(), 126) ---------- 不说了直接上代码懒人自有懒人的办法