1: 删除LOG
1:分离数据库   企业管理器->服务器->数据库->右键->分离数据库
2:删除LOG文件
3:附加数据库  企业管理器->服务器->数据库->右键->附加数据库
此法生成新的LOG,大小只有500多K
   再将此数据库设置自动收缩
 或用代码: 
下面的示例分离 pubs,然后将 pubs 中的一个文件附加到当前服务器。EXEC sp_detach_db @dbname = 'pubs'
EXEC sp_attach_single_file_db @dbname = 'pubs', 
   @physname = 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs.mdf'
2:清空日志
DUMP  TRANSACTION  库名  WITH  NO_LOG    再:
企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件--选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了3: 
企业管理器->服务器->数据库->属性->事务日志->将文件增长限制为2M

解决方案 »

  1.   

    --截断日志:
    backup log 数据库 with no_log再:
    企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件--选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了
      

  2.   

    改库为简单恢复模型
    alter database test set recovery simple
    你的数据库服务器-》企业管理器-》管理-》SQL Server 代理-》作业-》新建作业,按照要求填就可以了,在“步骤”的“命令”中填写你要执行的存储过程或语句,在“调度”里面填写什么时间执行每天用作业执行:
    DUMP  TRANSACTION  库名  WITH  NO_LOG
    或:
    backup log 数据库 with no_log
      

  3.   

    可以做一个JOB,找一个空余的时间去删除日志文件。。
      

  4.   

    SQL Server的日志是一个可怕的家伙,会不停的增长,如果限制大小,又会出现问题!那么如何减少SQL Server日志的大小呢?用如下的命令即可: 
    backup log DatabaseName with no_logdbcc shrinkdatabase(DatabaseName)或者接下来,用企业管理器收缩数据库即可!代码如下:with TADOQuery.Create(Self) dotryConnection := FrmDm.dbKS;///清除日志,并且收缩数据库,减少物理文件大小SQL.Add('backup log KS with no_log');SQL.Add('dbcc shrinkdatabase(KS)');ExecSQL;finallyFree;end;---------------------------------------nzfsoft下面这段sql代码是改自Microsoft的, 你运行一下生成的stored proc, 可以把你的log文件缩小到10M, ^_^注意把里面注释的数据库名改成你自己的库名啊if exists (select * from sysobjects where id = object_id(N'[dbo].[Truncate_Log_File]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)drop procedure [dbo].[Truncate_Log_File]GOSET QUOTED_IDENTIFIER OFF SET ANSI_NULLS ONGOCREATE PROCEDURE [Truncate_Log_File] ASSET NOCOUNT ONDECLARE @LogicalFileName sysname,@MaxMinutes INT,@NewSize INTSELECT @LogicalFileName = 'XXXX_LOG', -- 这里的XXXX_LOG替换成泥自己数据库的log名@MaxMinutes = 10,@NewSize = 10DECLARE @OriginalSize intSELECT @OriginalSize = sizeFROM sysfilesWHERE name = @LogicalFileNameDECLARE @Counter INT,@StartTime DATETIME,@TruncLog VARCHAR(255)WHILE @OriginalSize*8/1024>@NewsizeBEGINCREATE TABLE DummyTrans(DummyColumn char (8000) not null)SELECT @StartTime = GETDATE(),@TruncLog = 'BACKUP LOG ['+ db_name() + '] WITH TRUNCATE_ONLY'DBCC SHRINKFILE (@LogicalFileName, @NewSize)EXEC (@TruncLog)WHILE @MaxMinutes > DATEDIFF (mi, @StartTime, GETDATE())AND @OriginalSize = (SELECT size FROM sysfiles WHERE name = @LogicalFileName)AND (@OriginalSize * 8 /1024) > @NewSizeBEGINSELECT @Counter = 0WHILE ((@Counter < @OriginalSize / 16) AND (@Counter < 5000))BEGININSERT DummyTrans valueS ('Fill Log')DELETE DummyTransSELECT @Counter = @Counter + 1ENDEXEC (@TruncLog)ENDSELECT @OriginalSize=sizeFROM sysfilesWHERE name = @LogicalFileNameDROP TABLE DummyTransENDSET NOCOUNT OFFGOSET QUOTED_IDENTIFIER OFF SET ANSI_NULLS ONGO
      

  5.   

    sp_dboption 'trunc.log on chkpt.','TRUE'
    缩短事务日志(删去已提交的事务),每当检查点过程发生时引发——在开发过程中用来保留事务日志空间。不要在生产数据库中使用。