导航

用语句清除数据库日志

Posted on 2010-05-25 08:51  lilin  阅读(653)  评论(0编辑  收藏  举报

如果SQLServer服务器对日志大小有限制的话,如果日志满了的话,那么在WEB操作中只能查询,无法对数据库进行插入修改等操作。这里候需要清除日志。

如果您在网站中发现了这种现象,网站正常打开,数据无法增加也不报错,就很有可能是这种情况,就需要清除一下数据库日志了。


-- =============================================
-- Author:        <LL>
-- Description:    <清日志>
--日期输入为文本类型 '2010-02-28'

--本过程的数据库名是按日期命名的
-- =============================================
ALTER PROCEDURE [dbo].[Del_Log]
    @dateBegin smalldatetime,
    @dateEnd smalldatetime
AS
declare @t table(id int identity(1,1),date smalldatetime)
declare @dbName varchar(14)
while @dateBegin <= @dateEnd
begin
    set @dbName = 'Wap_' + replace(convert(varchar(10),@dateBegin,102),'.','_')

 

    --清日志
    DUMP TRANSACTION @dbName WITH NO_LOG
    BACKUP LOG @dbName WITH NO_LOG
    DBCC SHRINKDATABASE(@dbName)

    insert into @t (date) values (@dateBegin)
    set @dateBegin = dateadd(day,1,@dateBegin)
end

select * from @t