《SQL Server 2008 R2》 收缩数据库日志文件
时间:2019-08-16
本文章向大家介绍《SQL Server 2008 R2》 收缩数据库日志文件,主要包括《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
原文地址:https://www.cnblogs.com/com-xiaolanchong/p/11365060.html
- MySQL 教程
- MySQL 安装
- MySQL 管理与配置
- MySQL PHP 语法
- MySQL 连接
- MySQL 创建数据库
- MySQL 删除数据库
- MySQL 选择数据库
- MySQL 数据类型
- MySQL 创建数据表
- MySQL 删除数据表
- MySQL 插入数据
- MySQL 查询数据
- MySQL where 子句
- MySQL UPDATE 查询
- MySQL DELETE 语句
- MySQL LIKE 子句
- mysql order by
- Mysql Join的使用
- MySQL NULL 值处理
- MySQL 正则表达式
- MySQL 事务
- MySQL ALTER命令
- MySQL 索引
- MySQL 临时表
- MySQL 复制表
- 查看MySQL 元数据
- MySQL 序列 AUTO_INCREMENT
- MySQL 处理重复数据
- MySQL 及 SQL 注入
- MySQL 导出数据
- MySQL 导入数据
- MYSQL 函数大全
- MySQL Group By 实例讲解
- MySQL Max()函数实例讲解
- mysql count函数实例
- MYSQL UNION和UNION ALL实例
- MySQL IN 用法
- MySQL between and 实例讲解
- keras实现theano和tensorflow训练的模型相互转换
- python中round函数如何使用
- PHP array_reduce()函数的应用解析
- php微信公众号开发之简答题
- php5.x禁用eval的操作方法
- php微信公众号开发之图片回复
- php微信公众号开发之答题连闯三关
- swoole_process实现进程池的方法示例
- golang实现php里的serialize()和unserialize()序列和反序列方法详解
- keras 实现轻量级网络ShuffleNet教程
- Python应用实现处理excel数据过程解析
- Python实现爬取并分析电商评论
- python中怎么表示空值
- Keras自动下载的数据集/模型存放位置介绍
- Keras 切换后端方式(Theano和TensorFlow)