为SQL Server数据库清空日志并收缩数据库

在SQL SERVER运行一段时间后,数据库的日志文件越来越大越来越大,有的时候我们为了减少日志文件的大小腾出存储空间,就要截断事务日志并收缩数据库,这样LOG文件占用的磁盘空间就被释放了。

要注意以下的任何一种操作都会使你丧失相应数据库的事务日志内容!操作之前一定要先备份数据库!!

对于SQL Server 2012之前的版本可以这样干:

--打开查询分析器或者SSMS(SQL Server Management Studio)连接数据库服务器并新建个查询,
--把这里所有的查询代码都复制到新建的空白查询里,
--然后把下面第一行代码中的DBNAME改成你的数据库的名字再执行该查询就可以了

DECLARE @dbName NVARCHAR(MAX) = 'DBNAME';

DECLARE @cmd4 NVARCHAR(MAX) = 'DUMP TRANSACTION ' + @dbName + ' WITH NO_LOG;';
DECLARE @cmd5 NVARCHAR(MAX) = 'BACKUP LOG ' + @dbName + ' WITH NO_LOG;';
DECLARE @cmd6 NVARCHAR(MAX) = 'DBCC SHRINKDATABASE (' + @dbName + ' ,0);';

EXEC sys.sp_executesql @cmd4;
EXEC sys.sp_executesql @cmd5;
EXEC sys.sp_executesql @cmd6;

对于SQL Server 2012及更新版本要这么干: 

--打开SSMS(SQL Server Management Studio)连接数据库服务器并新建个查询,
--把这里所有的查询代码都复制到新建的空白查询里,
--然后把下面第一行代码中的DBNAME改成你的数据库的名字再执行该查询就可以了

DECLARE @dbName NVARCHAR(MAX) = 'DBNAME';

DECLARE @cmd1 NVARCHAR(MAX) = 'ALTER DATABASE ' + @dbName + ' SET RECOVERY SIMPLE;';
DECLARE @cmd2 NVARCHAR(MAX) = 'ALTER DATABASE ' + @dbName + ' SET RECOVERY FULL;';
DECLARE @cmd3 NVARCHAR(MAX) = 'DBCC SHRINKDATABASE (' + @dbName + ' ,0);';

EXEC sys.sp_executesql @cmd1;
EXEC sys.sp_executesql @cmd2;
EXEC sys.sp_executesql @cmd3;
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值