使用存储过程备份SqlServer数据库

存储过程代码如下所示:

CREATE PROCEDURE [dbo].[SP_BackupDB]
(
    @BackPath NVARCHAR(200),                    --备份路径,如:D:\Backup\
    @BackDbName NVARCHAR(50),                   --需要备份的数据库名称
    @BackName NVARCHAR(50)=@BackDbName OUTPUT,  --备份后的数据库名称,不需要.bak后缀。若不传,则等同于@BackDbName
    @BackPathIsDate BIT=1,                      --备份路径是否需要添加日期文件夹,默认添加
    @BackNameIsTime BIT=1                       --备份后的数据库名称是否需要追加当前时间,默认追加
)
AS
BEGIN  

    IF(@BackPathIsDate=1)
        BEGIN
            SET @BackPath=@BackPath + CONVERT(VARCHAR, GETDATE(), 112) +‘\‘;
        END

    ---------------------------创建文件夹 Begin---------------------------
    DECLARE @FolderSQL NVARCHAR(MAX),
        @Return INT= 0;

    SET @FolderSQL = N‘EXEC sp_configure ‘‘show advanced options‘‘,1
    RECONFIGURE WITH OVERRIDE;

    EXEC sp_configure ‘‘xp_cmdshell‘‘,1
    RECONFIGURE WITH OVERRIDE;

    EXEC @Return=xp_cmdshell ‘‘mkdir ‘ + @BackPath
        + ‘‘‘,NO_OUTPUT   --调用DOS命令创建文件夹;

    EXEC sp_configure ‘‘xp_cmdshell‘‘, 0
    RECONFIGURE WITH OVERRIDE;

    EXEC sys.sp_configure N‘‘show advanced options‘‘, N‘‘0‘‘
    RECONFIGURE WITH OVERRIDE;
    ‘;
    --PRINT @FolderSQL;  

    EXEC sp_executesql @FolderSQL, N‘@Return INT OUTPUT‘, @Return OUTPUT;
    --SELECT  @Return;   

    --PRINT @Return
    ---------------------------创建文件夹 End---------------------------

    ---------------------------备份数据库 Begin---------------------------
    DECLARE @NowTime VARCHAR(100);
    DECLARE @BackUpName VARCHAR(100);

    SET @NowTime=CONVERT(VARCHAR, GETDATE(), 112)+REPLACE(CONVERT(VARCHAR, GETDATE(), 108),‘:‘,‘‘);

    /*
    IF(LEN(@BackName)<=0)
        BEGIN
            SET @[email protected];
        END
    */

    IF(@BackNameIsTime=1)
        BEGIN
            SET @BackName=@BackName +‘_‘+ @NowTime;
        END
    SET @BackName=@BackName+‘.bak‘;

    SET @BackUpName=@BackPath + @BackName;

    BACKUP DATABASE @BackDbName
    TO DISK=@BackUpName
    WITH INIT;
    ---------------------------备份数据库 End---------------------------

    SELECT @BackName BackName,@BackPath BackPath,@BackPath + @BackName FullBackName;

END

GO
时间: 2024-08-10 10:29:09

使用存储过程备份SqlServer数据库的相关文章

动态备份SQL-SERVER数据库——SQLDMO

转载:http://www.cnblogs.com/liulanglang/archive/2007/12/04/981812.html 上周要写一个SQL-SERVER数据库备份还原的程序,很没有思路,只是记得上学的时候用过SQL语句来完成数据库的备份还原,其余的方式还没有尝试过.经过资料查找终于找到了解决方案,效果还不错,于是写下来一起分享. 大家最常见的是使用sql命令来进行数据库备份, 最常用的sql语句如下: backup [dbname]   to   disk=[路径+文件名] r

C#_备份sqlserver数据库

C# 代码备份数据库 ,不需要 其他 DLL protected void Button1_Click(object sender, EventArgs e)    {        ///        ///备份方法        ///        SqlConnection conn = new SqlConnection("Server=.; Database=aaaa; User ID=sa; Password=sa;"); SqlCommand cmdBK = new

Sql语句备份Sqlserver数据库

BACKUP DATABASE [POS_YiZhuang]TODISK = N'C:\数据库\POS_YiZhuang2016-09-20-3.bak'WITHNAME = N'POS_YiZhuang - 备份',NOFORMAT, NOINIT, SKIP,STATS = 5 --POS_YiZhuang 为数据库名称--C:\数据库\POS_YiZhuang2016-09-20-3.bak 为数据库所在服务器的路径

使用bat批处理文件定时自动备份sqlserver数据库

一.创建一个sql文件,在里面写入以下代码: USE MasterGOdeclare @str varchar(100)set @str='D:\sqlserver14backup\CDB\'+replace(replace(replace(convert(varchar,getdate(),20),'-',''),' ',''),':','')+'.bak'BACKUP DATABASE [CDB] TO [email protected]WITH RETAINDAYS=15,NOFORMAT

使用ODBC备份Sqlserver数据库失败

软件原来是使用ADO访问LocalDB,现在切换为开源ODBC的C++封装nanodbc, 调试后其他一切正常,可BACKUP DATABASE命令虽然返回成功,但实际备份却没有成功, 查了下资料,在微软网站上发现一个回答 This is by design. Your application must call SQLMoreResults to ensure all the results of the statement are consumed and hence completed.

备份sqlserver 数据库到远程主机脚本

mssqlBackup.py: # Name: mssqlBackup.py # Purpose:  # # Author: yanglixue # # Created: 2015/04/01 #------------------------------------------------------------------------------- import pymssql import datetime import logging import traceback import os

sqlserver数据库备份方法

须事先准备一个工具curl,把它放在c盘.然后,在数据库所在服务器安装7z.最后把这2个存储过程执行,在sqlserver的代理中新建作业,即可实现备份操作. --备份指定数据库到本地和远程指定位置(7-zip压缩) Create PROCEDURE [dbo].[BackUpDB7z] @dbname sysname --数据库名 AS declare @backupfile nvarchar(200) --本地备份文件名 declare @backuplogfile nvarchar(200

openTSP连接sqlServer数据库&amp;jpa调用存储过程

openTSP框架下的模块都是连接mysql数据库,近期青汽有连接sqlServer数据库的需求,在调研后配置了sqlServer数据库,使用jpa调用存储过程,中间也踩了不少坑,总结一下,避免大家再掉进去. 1.首先配置sqlServer的依赖 <dependency> <groupId>com.microsoft.sqlserver</groupId> <artifactId>sqljdbc4</artifactId> <version

JAVA使用JDBC技术操作SqlServer数据库执行存储过程

Java使用JDBC技术操作SqlServer数据库执行存储过程: 1.新建SQLSERVER数据库:java_conn_test 2.新建表:tb_User 3.分别新建三个存储过程: 1>带参数的新增用户存储过程: CREATE PROCEDURE [dbo].[p_Insert_User] @name nvarchar(50), @UserPwd nvarchar(50) AS BEGIN INSERT INTO tb_User VALUES(NEWID(),@name,@UserPwd)