批量清除SQL Server日志(SQL版)
/*************************************************************/
/** 功能:清除指定数据库的LOG日志以节约磁盘空间 **/
/** 参数说明:@Dname为指定的数据库名称, 传''则表示全部 **/
/** 日期:20080312 **/
/** 创建:ChengJie **/
/*************************************************************/
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = object_id(N'[dbo].[ClrLog]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
DROP PROCEDURE [dbo].ClrLog
GO
CREATE PROCEDURE ClrLog
@Dname varchar(50)
AS
DECLARE
@name varchar(50)
BEGIN
IF (@Dname = '')
BEGIN
DECLARE DataName CURSOR FOR
SELECT name FROM sysdatabases WHERE name not in ('master', 'model', 'msdb', 'tempdb')
OPEN DataName
FETCH NEXT FROM DataName
INTO @name
WHILE (@@FETCH_STATUS = 0)
BEGIN
BACKUP LOG @name WITH truncate_only
DBCC shrinkdatabase (@name)
FETCH NEXT FROM DataName
INTO @name
END
CLOSE DataName
DEALLOCATE DataName
END
ELSE
BEGIN
IF EXISTS (SELECT name FROM sysdatabases WHERE name not in ('master', 'model', 'msdb', 'tempdb') AND name=@Dname)
BEGIN
BACKUP LOG @Dname WITH truncate_only
DBCC shrinkdatabase (@Dname)
END
END
END
GO
EXEC ClrLog ''


浙公网安备 33010602011771号