《SQL Server 2008 R2》 收缩数据库日志文件
USE [master]
GO
/****** Object: StoredProcedure [dbo].[pro_Shrink_Log] Script Date: 2019/8/16 16:56:21 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: xlc
-- Create date: 2019.08.16
-- Description: 收缩数据库日志
-- =============================================
ALTER PROCEDURE [dbo].[pro_Shrink_Log]
@dbName NVARCHAR(200)
AS
BEGIN
SET NOCOUNT ON;
DECLARE @sql NVARCHAR(200);
DECLARE @logname NVARCHAR(200);
DECLARE @dbRecovery TINYINT;
-- 获取日志文件名
-- N 将内容转为unicode 中文也不会出现乱码 -- 获取日志文件名
SET @sql= N'USE [' + @dbName +'];' + Char(13) + Char(10) +
'SELECT TOP 1 @logname = NAME FROM SYS.DATABASE_FILES WHERE TYPE = 1'; EXECUTE sp_executesql @sql, N'@logname NVARCHAR(200) output',@logname output; IF @logname IS NULL
BEGIN
PRINT '未找到日志文件:' + @sql;
RETURN;
END -- 获取当前恢复模式 SET @sql = N'USE [' + @dbName + N'];' + Char(13) + Char(10) +
'SELECT TOP 1 @dbRecovery = recovery_model FROM sys.databases where name =''' + @dbName + ''''; EXECUTE sp_executesql @sql, N'@dbRecovery TINYINT output',@dbRecovery output; -- 1、设置模式为简单模式
SET @sql = N'USE MASTER;'+Char(13) + Char(10) +'ALTER DATABASE [' + @dbName + N'] SET RECOVERY SIMPLE WITH NO_WAIT';
EXECUTE sp_executesql @sql;
SET @sql = N'ALTER DATABASE [' + @dbName + N'] SET RECOVERY SIMPLE';
EXECUTE sp_executesql @sql; -- 2、收缩文件
SET @sql = N'USE [' + @dbName + N'];' + Char(13) + Char(10) +
'DBCC SHRINKFILE (N''' + @logname + ''', 1, TRUNCATEONLY)';
EXECUTE sp_executesql @sql; -- 3、设置模式为完全
IF @dbRecovery = 1
begin
SET @sql = N'USE MASTER;'+Char(13) + Char(10) +'ALTER DATABASE [' + @dbName + N'] SET RECOVERY FULL WITH NO_WAIT';
EXECUTE sp_executesql @sql;
SET @sql = N'ALTER DATABASE [' + @dbName + N'] SET RECOVERY FULL';
EXECUTE sp_executesql @sql;
end
PRINT '数据库:' + @dbName + ' 日志文件:' + @logname + ' 收缩完成';
END
建议将存储过程放在 master中执行。
执行方式:
EXEC pro_Shrink_Log test
执行结果:

参考:https://blog.csdn.net/youbl/article/details/8990169
《SQL Server 2008 R2》 收缩数据库日志文件的更多相关文章
- sql server 2008 r2 清除数据库日志
USE [master] GO ALTER DATABASE [数据库名] SET RECOVERY SIMPLE WITH NO_WAIT GO ALTER DATABASE [数据库名] SET ...
- SQL Server 2008 R2 清空数据库中ldf日志文件
/************************************************************ * Sql Server 2008 R2 清空数据库中ldf日志文件 * 将 ...
- SQL Server 2008 R2 主从数据库同步
一.准备工作: 主数据库服务器: OS:Windows Server 2008 R2 DB: SQL Server 2008 R2 Hostname : CXMasterDB IP: 192.1 ...
- SQL Server 2008 R2 主从数据库同步设置
一.准备工作: 主数据库服务器: OS:Windows Server 2008 R2 DB: SQL Server 2008 R2 Hostname : CXMasterDB IP: 192.1 ...
- SQL Server 2008 /SQL Server 2008 R2 配置数据库邮件
原文:SQL Server 2008 /SQL Server 2008 R2 配置数据库邮件 从2005开始,就引入了"数据库邮件"功能.并且取代SQLMail.原有SQLMail ...
- SQL Server 2008 R2 附加数据库 “尝试打开或创建物理文件 拒绝访问”的解决办法
其实是来自一篇SQL Server 2005同样错误的帖子,不过试了在SQL Server 2008 R2下面也有效,记录一下. 解决方法: 在所有程序—Microsoft SQL Server 20 ...
- SQL Server 2008 R2 开启数据库远程连接
今天要测试一个.net系统~因为配置的数据库是SQL Server~我就不得不安装SQL Server 2008 R2~现在我们就一起来看看SQL Server 2008 R2是如何打开远程连接端口1 ...
- SQL SERVER 2008 R2 还原数据库3154错误
1.SQL SERVER 2008 在还原数据库时,会报错. 提示错误:"备份集中的数据库备份与现有的 '***' 数据库不同.RESTORE DATABASE 正在异常终止. (Micro ...
- SQL Server 2008 中收缩数据库(DUMP,TRANSACTION,TRAN,无效,语法错误)
从SQL SERVER 2008 开始,我们已经不能再用以前 DUMP TRAN 数据库名 WITH NO_LOG 的这种方式来收缩数据库,但是,可以用另外一种替代的方法,SQL语句如下: ALTER ...
- sql server 2008中清除数据库日志的sql语句
第一步: Use 数据库名 Select NAME,size From sys.database_files 将“数据库名”改为需要清除日志的数据库名字,点击“执行”查询出需要清除的日志名称:**_ ...
随机推荐
- 7.Python网络编程_多线程共享全局变量问题
Python多线程支持全局变量的共享操作,但是它存在很多问题,先来看以下程序,该程序理论上执行完毕后全局变量g_num的值应该是2000000,但是在实际运行中,结果不足理论值 import thre ...
- Onenote添加代码
使用Onenote做笔记的时候,是没有直接插入代码的,但是如果可以插入的话很方便. 这个是我找的一个参考,照这个来就行. 参考链接: https://www.cnblogs.com/two-peanu ...
- Mybatis的Java API(八)
使用mybatis的主要Java接口就是SqlSession.可以通过这个接口来执行命令,获取映射器和事务管理. SqlSession是由SqlSessionFactory实例创建,SqlSessio ...
- 剑指Offer-21.栈的压入、弹出序列(C++/Java)
题目: 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序.假设压入栈的所有数字均不相等.例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈 ...
- boostrap --- 弹窗modal的使用
<input id="btntext" type="button" value="添加文本组件" data-toggle=" ...
- git pull --rebase的理解
在使用git的过程中经常需要使用到git pull命令,在更新远端代码的同时如果与本地代码产生冲突了, 那么冲突的文件中就出现了需要手动合并的部分,而git pull --rebase不同的地方则是当 ...
- 【转】np.random.random()函数 参数用法以及numpy.random系列函数大全
转自:https://www.cnblogs.com/DOMLX/p/9751471.html 1.np.random.random()函数参数 np.random.random((1000, 20) ...
- Vue.js 源码分析(一) 代码结构
关于Vue vue是一个兴起的前端js库,是一个精简的MVVM.MVVM模式是由经典的软件架构MVC衍生来的,当View(视图层)变化时,会自动更新到ViewModel(视图模型),反之亦然,View ...
- 你真的了解nginx重定向URI?-rewrite和alias指令
未经允许不得转载!最近发现有博主转载我的文章,并没有跟我打招呼,也没有注明出处!!!! 熟悉Nginx的同学都知道Nginx可以用来做负载均衡和反向代理,非常好用.做前后端分离也是非常的方便. 今天我 ...
- .Net轻松处理亿级数据--clickhouse及可视化界面安装介绍
该篇内容由个人博客点击跳转同步更新!转载请注明出处! 前言 我是在17年就听说过Clickhouse,那时还未接触过亿数据的运算,那时我在的小公司对于千万数据的解决方案还停留在分库分表,最好的也是使用 ...