下面的存储过程适用:

1.一次想备份多个数据库。

2.只需要一步操作,在有存储过程的条件下。

3.可以根据自己的需要修改存储过程。

/*-----------------------------
Description:
1.Backup multiple Database
2.If you want to backup database except 'master\model\msdb\tempdb',you can input '%' of the second parameter
3.parameter 1 is the path where you want to back,parameter 2 is the database name you want to backup
3.This procedure backup database with fuzzy database name Author:jiangxiaoqiang
Date:2013-09-27
Modify history:
-----------------------------*/ ALTER procedure [dbo].[sp_BackupDBBatch]
@backup_path varchar(200),
@backup_name varchar(200)
as
begin
declare @DynamicSQL varchar(256)
set @DynamicSQL='if not exist '+@backup_path+'\%Date:~0,4%%Date:~5,2%%Date:~8,2% mkdir '+@backup_path+'\%Date:~0,4%%Date:~5,2%%Date:~8,2%'
exec xp_cmdshell @DynamicSQL declare @backup_path_detail varchar(200)
set @backup_path_detail=@backup_path+'\'+CONVERT(char(8),GETDATE(),112)
--declare variable
DECLARE @dbname nvarchar(200)
--SET @backup_path='D:\DatabaseBackup'--you can define by yourself
/*
declare cursor syntax
DECLARE cursor_name CURSOR
[LOCAL | GLOBAL]
[FORWARD_ONLY | SCROLL]
[STATIC | KEYSET | DYNAMIC | FAST_FORWARD]
[READ_ONLY | SCROLL_LOCKS | OPTIMISTIC]
[TYPE_WARNING]
FOR select_statement
[FOR UPDATE [OF column_name [,...n]]]
*/
DECLARE db_info CURSOR --declare cursor
LOCAL
STATIC
READ_ONLY
FORWARD_ONLY
FOR --add other condition by select
SELECT name
FROM master.sys.databases with(NOLOCK)
WHERE database_id>4 and name like '%'+@backup_name+'%'--maser,model,msdb,tempdb
--here you can add the condition like:name like'NJPEC%'
OPEN db_info --open cursor
FETCH NEXT FROM db_info INTO @dbname WHILE @@FETCH_STATUS=0
BEGIN
EXEC master.dbo.backupDB @dbname,@backup_path_detail
FETCH NEXT FROM db_info INTO @dbname
END
CLOSE db_info
DEALLOCATE db_info
---------------------------END--------------------------------
--Find&list all database
/*
select *
from master.sys.databases
order by database_id;
*/
end
ALTER PROC [dbo].[backupDB]
(
--We'd better add bracket even if no parameters
@DatabaseName nvarchar(200),
@Path nvarchar(200)
)
AS
BEGIN
DECLARE @FileName varchar(200),@sql varchar(1000)
--RIGHT function:return the @Path last X word
--CONVERT function:CONVERT(data_type(length),data_to_be_converted,style)
--112 representative yymmdd format
--108 representative hh:mm:ss format
SET @FileName=@Path+(CASE WHEN RIGHT(@Path,1)<>'\' THEN '\' ELSE '' END)
+@DatabaseName+'_'+CONVERT(char(8),GETDATE(),112)+'_'
+replace(convert(char(8),getdate(),108),':','')+'.bak'
--to explain the ''':the ' before to and the last ' was a couple.
--the backup folder must be exists,and N must be uppercase.
--what's the 'N' meaning?It means the varible using code with unicode.
SET @sql='backup database '+@DatabaseName+' to disk =N'''+@FileName+''''
EXEC(@sql)
END

数据非常重要,本脚本为学习交流用,正式数据库还请制定详细备份解决方案,欢迎大家提出改进意见。

备份数据库SQL Server 2008下实测的更多相关文章

  1. SQL Server 2008下日志清理方法 2

    SQL Server 2008下日志清理方法 (2011-07-14 10:30:45) 转自 http://blog.sina.com.cn/s/blog_4bdd3d0b0100wfvq.html ...

  2. 批量还原数据库 SQL Server 2008

    1.如果你够懒,不想一步一步点路径,一步一步选择 2.如果你连单个备份数据库的存储过程都不想多执行,一般每还原一个需要修改数据库名 下面的脚本适合你: /*********************** ...

  3. 如何在SQL Server 2008下轻松调试T-SQL语句和存储过程

    一.回顾早期的SQL SERVER版本:早在SQL Server 2000时代,查询分析器的功能还很简陋,远不如VS那么强大.到SQL Server 2005时代,代码高亮.SQL优化等功能逐渐加强, ...

  4. 九、数据库——sql server 2008导入excel

    昨天分配给我一个活,让我手动录入新闻网页的数据,包括每条新闻的标题.时间和链接. 一开始,就是按照最原始的手动录入的方法,一条条的录入.发现这简直就是在浪费时间,于是就想了一种新方法. 1.将网页中的 ...

  5. SQL Server 2008下日志清理方法

    1.将数据库设置成 简单 模式 选择要收缩的数据库,点右键 属性->选项,选择 简单模式 2.选择任务->收缩->文件 3.选择日志

  6. 从远程服务器数据库中同步数据到本地数据库 sql server 2008 开启分布

    控制面板\所有控制面板项\管理工具 打开“管理工具――组件服务”,以此打开“组件服务――计算机”,在“我的电脑”上点击右键.在MSDTC选项卡中,点击“安全配置”按钮. 在安全配置窗口中做如下设置: ...

  7. SQL Server 2008 R2 数据库安装

    操作系统    Windows server 2008 R2 数据库      SQL Server 2008 R2 注意:SQL Server 2008 R2需要操作系统首先安装.NET Frame ...

  8. .Net EF Core数据库使用SQL server 2008 R2分页报错How to avoid the “Incorrect syntax near 'OFFSET'. Invalid usage of the option NEXT in the FETCH statement.”

    一.  问题说明 最近.Net EF core 程序部署到服务器,服务器数据库安装的是SQL server 2008 R2,我本地用的的是SQL server 2014,在用到分页查询时报错如下: H ...

  9. Vcenter虚拟化三部曲----SQL Server 2008 R2 数据库安装

    操作系统    Windows server 2008 R2 数据库      SQL Server 2008 R2 注意:SQL Server 2008 R2需要操作系统首先安装.NET Frame ...

随机推荐

  1. dwz ie10一直提示数据加载中

    dwz js资源jquery.validate.js 搜索 this.attr('novalidate', 'novalidate'); 在33行左右 用if (typeof (Worker) !== ...

  2. Oracle ->> Oracle下查看实际执行计划的方法

    也许有很多种方法,这里只是书上学到的一种方法 with a as ( order by grp_factor) t ) select b.id, a.grp_factor )b --use v$sql ...

  3. adb 安卓opencv manager报错:adb server is out of date.killing

    原因:ref:http://jingyan.baidu.com/article/d621e8da0dee022865913fce.html      最后发现360mobil.exe占用 5037 通 ...

  4. Ubuntu 14.04快速搭建SVN服务器及日常使用【转】

    转自:http://www.linuxidc.com/Linux/2015-05/117735.htm 1.介绍  Subversion是一个自由,开源的版本控制系统,这个版本库就像一个普通的文件服务 ...

  5. 9.cadence.封装1[原创]

    一.封装中几个重要的概念 软件如下: ①.Regular pad(正规焊盘) 用在:top layer,bottom layer,internal layer(信号层) ②.thermal relie ...

  6. ORACLE EBS R12 - 寄售功能知多少

    材料以寄售方式供应,是制造业实现零库存管理的一种方式.东西放在我这里,不用的时候,东西还是供应商的,用的时候,按"装机"数量进行付款.这种业务模式,对于竞争日趋白热化的家电行业,非 ...

  7. leetcode:Reverse Linked List

    Reverse a singly linked list. 代码如下: the iterative solution:(c++) /** * Definition for singly-linked ...

  8. List排序的两种简便方式

    using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace List ...

  9. iOS9 class dump header

    获取系统私有API,网上有很多资料总结了一下就三种方式: 使用class-dump可以提取系统私有API列表 使用class-dump+DumpFrameworks.pl,这个可以一次性提取所有系统F ...

  10. Qt之重启应用程序

    简介 今天分享的内容有些意思-如何重启一个应用程序.其实,有时候这是一个很重要的功能点,而且很人性化.易用性很好. 例如:切换用户.当某个用户登录成功之后,需要切换到其它账号,那么这时,你就知道它的重 ...