码迷,mamicode.com
首页 > 数据库 > 详细

MSSQL Express版本自动备份数据库

时间:2016-06-04 16:19:47      阅读:266      评论:0      收藏:0      [点我收藏+]

标签:

由于Express版本的数据库没有自动备份数据库的功能,所以需要自己搭建好备份功能

 

一、具体原理:

1、利用SQL备份命令:Backup Database

2、使用sqlcmd执行备份命令

3、使用系统计划任务定时执行备份

 

二、具体操作步骤:

1、在数据库创建一个存储过程:sp_BackupDataBase

问:为什么要存储过程来执行Backup命令呢?

答:因为可以有更多的自定义操作

USE [master]
GO

/****** Object:  StoredProcedure [dbo].[sp_BackupDataBase]    Script Date: 2016/6/4 14:40:29 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:        <Author,,Name>
-- Create date: <Create Date,,>
-- Description:    <Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[sp_BackupDataBase]
    -- Add the parameters for the stored procedure here
    @Database NVARCHAR(300), 
    @BackupFolder NVARCHAR(300)
AS
BEGIN
    SET NOCOUNT ON;

    --取得当前时间字符串
    Declare @now Varchar(8)
    Set @now = Convert(Varchar(8),GETDATE(),112)
    
    --组成文件名
    Declare @filename Nvarchar(200)
    Set @filename = @Database + N_ + @now + .bak

    --组成完整保存路径
    Declare @BackupPath Nvarchar(max)
    Set @BackupPath = @BackupFolder + \ + @filename

    --备份数据库
    BACKUP DATABASE @Database TO DISK = @BackupPath WITH FORMAT;
END

GO

2、编写一个bat,使用sqlcmd执行存储过程

@ECHO OFF

IF NOT EXIST "C:\DB_Backup" MD "C:\DB_Backup"
sqlcmd -S . -E -Q "sp_BackupDatabase N‘要备份的数据库名‘,N‘C:\DB_Backup\‘"

3、在系统创建计划任务,定时调用第二部创建的bat

 

至此,已经能正常自动备份了

注意一点就是,配置运行权限为SYSTEM

MSSQL Express版本自动备份数据库

标签:

原文地址:http://www.cnblogs.com/ZC_Mo-Blog/p/5558957.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!