如何收缩和删除SQL日志文件

-----------------收缩数据库的方法---------------------

DECLARE @dbname AS sysname
SET @DBNname = N'数据库名称l'

--1.清空日志
exec('DUMP TRANSACTION ['+@DBNname +'] WITH NO_LOG')

--2.截断事务日志:
exec('BACKUP (如果不压缩,数据库的文件不会减小LOG ['+@DBNname +'] WITH NO_LOG')

--3.收缩数据库文件
exec('DBCC SHRINKDATABASE(['+@DBNname +'])')

--收缩指定数据文件,1是文件号,可以通过这个语句查询到:select * from sysfiles 
DBCC SHRINKFILE(1)

--4.设置自动收缩
exec('EXEC sp_dboption mailto:'''+@dbname+''',''autoshrink'',''TRUE''')

-----------------删除数据库日志文件方法---------------------

1、分离数据库:
    企业管理器--服务器--数据库--右键--分离数据库
2、在我的电脑中删除LOG文件
3、附加数据库:
    企业管理器--服务器--数据库--右键--附加数据库
    此法将生成新的LOG,大小只有500多K

或用代码: 
1、分离
    EXEC sp_detach_db @DBNname = '数据库名'
2、删除日志文件
3、再附加
    EXEC sp_attach_single_file_db @DBNname = '数据库名'
    @physname = 'D:Program FilesMicrosoft SQL ServerMSSQLData数据库名.mdf'

-----------------删设置数据库日志文件大小方法---------------------

如果想以后不让它日志增长得太大
企业管理器--服务器--右键数据库--属性--事务日志
--将文件增长限制为xM(x是你允许的最大数据文件大小)

--SQL语句的设置方式:
Alter database 数据库名 modify file(name=逻辑文件名,maxsize=20)

原文地址:https://www.cnblogs.com/Italianetz/p/3458964.html