博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
sql server 定时备份数据库
阅读量:6691 次
发布时间:2019-06-25

本文共 2990 字,大约阅读时间需要 9 分钟。

CREATE  PROCEDURE [dbo].[SP_DBBackup_EveryNight_Local] @cycle INT,					---保存周期@IsLocal INT,				---是否为本地  0表示是 1表示否@SavePath NVARCHAR(100),	---文件保存路径 \\192.168.19.1\DataBaseBack@DBPrefix NVARCHAR(50),		---生成文件的前缀@Server VARCHAR(50),		---服务器IP  192.168.19.1@UserName VARCHAR(50),		---登录服务器用户名  administrator@PassWord VARCHAR(20)		---登录服务器密码   2016AS    BEGIN          DECLARE @backpath2 VARCHAR(100)          DECLARE @command VARCHAR(200)                   --创建临时表        CREATE TABLE #Filetabel            (              FILEPATH VARCHAR(100) NULL            )    --调用dos命令登录服务器    IF @IsLocal = 1    BEGIN		SET @command = 'net use ' + @SavePath + ' ' + @PassWord + ' /user:' + @Server + '\' + @UserName         EXEC master..xp_cmdshell @command      END        --将共享目录所有文件名添加至临时表        SET @command = 'dir /b ' +  @SavePath        INSERT  INTO #Filetabel                EXEC master..xp_cmdshell @command                        DELETE  FROM #Filetabel        WHERE   FILEPATH IS NULL                WHILE EXISTS ( SELECT   *                       FROM     #Filetabel )            BEGIN                DECLARE @fileName VARCHAR(100)                SET @fileName = ( SELECT TOP 1                                            *                                  FROM      #Filetabel                                  ORDER BY  FILEPATH                                )			--定义变量获取文件时间                DECLARE @fileTime VARCHAR(20)                DECLARE @fDateTime DATETIME                IF @fileName IS NOT NULL                    BEGIN                        SET @fileTime = SUBSTRING(@fileName, 17, 8)                        SET @fDateTime = CONVERT(DATETIME, @fileTime)                        DECLARE @lastTime DATETIME                        SET @lastTime = DATEADD(DAY, -@cycle,                                                CONVERT(VARCHAR(10), GETDATE(), 111))                        IF @fDateTime <= @lastTime                            BEGIN 							--删除备份                                DECLARE @filePath VARCHAR(100)                                SET @filePath = 'del ' + @SavePath + '\' + @fileName                                EXEC master..xp_cmdshell @filePath                            END                                                        --删除该条数据                                DELETE  FROM #Filetabel                                WHERE   FILEPATH = @fileName                    END            END                        --删除临时表                                DROP TABLE #Filetabel                                    --将数据库备份到服务器                                SET @backpath2 = @SavePath + '\' + @DBPrefix + '_' + REPLACE(CONVERT(VARCHAR(10), GETDATE(), 120),                                              '-', '') + '_back.bak'                                  BACKUP DATABASE [LGS] TO DISK=@backpath2 WITH INIT ,FORMAT       END GO

  

执行EXEC [dbo].[SP_DBBackup_EveryNight_Local] 5,0,'F:\LGS_Back','LGS','','',''

转载于:https://www.cnblogs.com/TBW-Superhero/p/6382217.html

你可能感兴趣的文章
ContentProvider数据更新
查看>>
一些常用RPM Repository(RPM软件仓库)地址
查看>>
Xcode常用插件
查看>>
实体 map 属性
查看>>
php设计模式--适配器模式
查看>>
java中的枚举类 enum使用与分析
查看>>
JAVA 四大域对象总结
查看>>
企业级落地容器与DevOps,选用K8S都有哪些“姿势”
查看>>
Android平台播放语音时支持听筒、喇叭之间切换
查看>>
RPC的实现
查看>>
不一样的Office 365之 —— 使用StaffHub管理你的排班
查看>>
从Mysql EXPLAIN探寻数据库查询优化2
查看>>
让元素居中
查看>>
php memcache保存session的一个设置误区
查看>>
鱼眼镜头
查看>>
Scalatra
查看>>
CentOS 7 三者分离编译安装LAMP
查看>>
Linux内核调整,支持4000-8000并发
查看>>
jquery mobile 设置设备适配
查看>>
redis使用总结-redis命令总结
查看>>