• 欢迎访问水熊虫网站,这里是我个人的工作博客,内容大多是遇到问题完善后,会在这里进行总结归纳内容! QQ群
  • 网站导航中的友情链接专栏上线,更新的都是自己这三年整理的一些东西,感兴趣可以看看!
  • 你所浪费的今天,是昨天死去的人奢望的明天。你所厌恶的现在,是未来的你回不去的曾经!

删除数据库or收缩数据库日志文件的方法

MSSQL WaterBear 7年前 (2017-09-20) 952次浏览 已收录 扫描二维码

删除数据库or收缩数据库日志文件的方法有两种:
[v_organge]方法一:手工操作
方法二:存储过程代替手工操作[/v_organge]

方法一:手工操作

1.数据库->右键->属性->选项-恢复模式->由完成切换成简单

删除数据库or收缩数据库日志文件的方法

删除数据库or收缩数据库日志文件的方法

删除数据库or收缩数据库日志文件的方法

2.数据库->右键->任务->收缩-文件->由完成切换成简单->文件类型->选择日志->选择将文件收缩到(自定义文件大小)

删除数据库or收缩数据库日志文件的方法

删除数据库or收缩数据库日志文件的方法

方法二:存储过程代替手工操作(未测试过,请备份好数据库在操作)

1.在数据库中执行下面的存储过程

    --日志文件收缩至多少M
    DECLARE @DBLogSise AS INT
    SET @DBLogSise=0
    --查询出数据库对应的日志文件名称
    DECLARE @strDBName AS NVARCHAR(500)
    DECLARE @strLogName AS NVARCHAR(500)
    DECLARE @strSQL AS VARCHAR(1000)
    
    SELECT 
        @strLogName=B.name,
        @strDBName=A.name
    FROM master.sys.databases AS A
    INNER JOIN sys.master_files AS B
    ON A.database_id = B.database_id
    WHERE 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)

2.然后再执行 EXEC dbo.usp_p_delDBLog @DBLogSise = 0 (收缩至多少M)


WaterBear , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:删除数据库or收缩数据库日志文件的方法
喜欢 (0)
[[email protected]]
分享 (0)