sqlserver备份整表数据的语句(SqlServer批量备份多个数据库且删除3天前的备份)
类别:数据库 浏览量:182
时间:2021-11-03 15:12:23 sqlserver备份整表数据的语句
SqlServer批量备份多个数据库且删除3天前的备份废话不多说了,直接给大家贴代码了,具体代码如下所示:
/******************************************* * 批量备份数据库且删除3天前的备份 *******************************************/ DECLARE @backupfile VARCHAR(1024) DECLARE @backdesc VARCHAR(1024) DECLARE @filename VARCHAR(1024) DECLARE @path VARCHAR(1024) DECLARE @dbname VARCHAR(1024) DECLARE @extension_name VARCHAR(16) --备份参数 DECLARE tmp_Cur CURSOR FOR SELECT NAME FROM [sys].[databases] WHERE NAME NOT IN ( 'master', 'model','msdb','tempdb' ) SET @path = N'D:\Backup\Autoback\'; SET @extension_name = N'bak'; --生成文件名 SET @filename = CONVERT(VARCHAR(1024), GETDATE(), 120) SET @filename = REPLACE(@filename, ':', '') SET @filename = REPLACE(@filename, '-', '') SET @filename = REPLACE(@filename, ' ', '') SET @filename = @filename + '_' + CONVERT (VARCHAR(3), DATEPART(ms, GETDATE())) + N'.' + @extension_name OPEN tmp_Cur; FETCH NEXT FROM tmp_Cur INTO @dbname; WHILE @@FETCH_STATUS = 0 BEGIN -- 得到完整目标文件,数据库将备份到这个文件中 SET @backupfile = @path + @dbname + @filename --SELECT @backupfile SET @backdesc =@dbname + N'-完整 数据库 备份' -- 开始备份, COMPRESSION 参数表示压缩,可节省磁盘空间 BACKUP DATABASE @dbname TO DISK = @backupfile WITH NOFORMAT, NOINIT, NAME = @backdesc, SKIP, NOREWIND, NOUNLOAD, STATS = 10, COMPRESSION FETCH NEXT FROM tmp_Cur INTO @dbname END CLOSE tmp_Cur; DEALLOCATE tmp_Cur; -- 删除3天前的备份文件 DECLARE @olddate DATETIME SELECT @olddate = DATEADD(d, -3, GETDATE()) -- 执行删除 (SQL 2008 具备) EXECUTE master.dbo.xp_delete_file 0, @path, @extension_name, @olddate, 1 [sql] view plain copy print? --作业定时压缩脚本支持多库 DECLARE @DatabaseName NVARCHAR(50) DECLARE @ExecuteSql NVARCHAR(MAX) SET @ExecuteSql='' DECLARE name_cursor CURSOR FOR SELECT name FROM master..sysdatabases WHERE name NOT IN ( 'master', 'model', 'msdb', 'tempdb', 'northwind','pubs','AgentSys','ydttimedtask','YiDianTongV2' ) OPEN name_cursor; FETCH NEXT FROM name_cursor INTO @DatabaseName; WHILE @@FETCH_STATUS = 0 BEGIN SET @ExecuteSql ='' SET @ExecuteSql +=' USE ['+@DatabaseName+']; DECLARE @Error INT SET @Error=(SELECT TOP 1 size/128.0 - CAST(FILEPROPERTY([NAME], ''SpaceUsed'') AS int)/128.0 AS AvailableSpaceInMB FROM sys.database_files ORDER BY [NAME] DESC) --PRINT @Error IF(@Error>1) BEGIN ALTER DATABASE ['+@DatabaseName+'] --数据库名字 SET RECOVERY SIMPLE; --设置简单恢复模式 DBCC SHRINKFILE ([YiDianTongV2], 1); --(M)不能小于1M, DBCC SHRINKFILE ([YiDianTongV2_log], 1); --(M)不能小于1M ALTER DATABASE ['+@DatabaseName+'] SET RECOVERY FULL; --恢复为原来完整模式 END ' PRINT @ExecuteSql; --打印 EXEC(@ExecuteSql) --执行 FETCH NEXT FROM name_cursor INTO @DatabaseName; END; CLOSE name_cursor; DEALLOCATE name_cursor;
总结
以上所述是小编给大家介绍的SqlServer批量备份多个数据库且删除3天前的备份,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对开心学习网网站的支持!
您可能感兴趣
- sqlserver配置管理器不见了(SQL Server配置管理器无法连接到WMI提供程序)
- sqlserver连接服务器怎么解决(Sql server端口未打开连接不上的解决方案)
- SqlServer数据库中文乱码问题解决方法(SqlServer数据库中文乱码问题解决方法)
- sqlserver最大数据导入量(SQL Server批量插入数据案例详解)
- sqlserver数据库备份怎么还原(SQL Server2012数据库备份和还原的教程)
- sqlserver常用函数(SQLServer 日期函数大全小结)
- sqlserver语句中的temp(SQL SERVER中强制类型转换cast和convert的区别详解)
- sql server新建用户无法登录(sqlserver 因为选定的用户拥有对象,所以无法除去该用户的解决方法)
- sqlserver新建连接服务器卡住(SQL Server成功与服务器建立连接但是在登录过程中发生错误的快速解决方案)
- sqlserver查看创建的索引(浅述SQL Server的聚焦强制索引查询条件和Columnstore Index)
- sqlserver2012卸载工具(Windows下SQL Serever 2012彻底卸载删除教程)
- SQLSERVER 拼接含有变量字符串案例详解(SQLSERVER 拼接含有变量字符串案例详解)
- sqlserver替换脚本(SQL Server中对数据截取替换的方法详解)
- sqlserver 存储过程参数类型(详解SQL Server表和索引存储结构)
- sqlserver备份数据库语句(SQL SERVER 数据库备份的三种策略及语句)
- sqlserver字段说明(详解SQL Server 中 JSON_MODIFY 的使用)
- 给儿童吃什么最好(给儿童吃什么最好消化)
- 杭州旅游攻略()
- 云南旅游攻略(云南旅游攻略5天攻略)
- 收藏 春节假期,这些景区巨划算(收藏春节假期这些景区巨划算)
- 景区游玩,这些安全知识要牢记(这些安全知识要牢记)
- 各地出招烘 热 旅游(各地出招烘热旅游)
热门推荐
- sql中row的用法(sql server数据库中raiserror函数用法的详细介绍)
- docker 启动rabbitmq(docker安装rabbitmq无法进入管理页面的问题)
- canvas怎么压缩图片(使用canvas压缩图片大小的方法示例)
- C#选择排序
- sqlserver电脑休眠时断开连接(浅谈sqlserver下float的不确定性)
- localstorage底层技术(浅谈Web Storage API的使用)
- JavaScript instanceof 的用法
- css min-width与max-width
- python无法拒绝的表白代码教程(很酷的python表白工具 你喜欢我吗)
- sql取整数函数(SQL中位数函数实例)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9