备份数据库SQL Server 2008下实测
下面的存储过程适用:
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下实测的更多相关文章
- SQL Server 2008下日志清理方法 2
SQL Server 2008下日志清理方法 (2011-07-14 10:30:45) 转自 http://blog.sina.com.cn/s/blog_4bdd3d0b0100wfvq.html ...
- 批量还原数据库 SQL Server 2008
1.如果你够懒,不想一步一步点路径,一步一步选择 2.如果你连单个备份数据库的存储过程都不想多执行,一般每还原一个需要修改数据库名 下面的脚本适合你: /*********************** ...
- 如何在SQL Server 2008下轻松调试T-SQL语句和存储过程
一.回顾早期的SQL SERVER版本:早在SQL Server 2000时代,查询分析器的功能还很简陋,远不如VS那么强大.到SQL Server 2005时代,代码高亮.SQL优化等功能逐渐加强, ...
- 九、数据库——sql server 2008导入excel
昨天分配给我一个活,让我手动录入新闻网页的数据,包括每条新闻的标题.时间和链接. 一开始,就是按照最原始的手动录入的方法,一条条的录入.发现这简直就是在浪费时间,于是就想了一种新方法. 1.将网页中的 ...
- SQL Server 2008下日志清理方法
1.将数据库设置成 简单 模式 选择要收缩的数据库,点右键 属性->选项,选择 简单模式 2.选择任务->收缩->文件 3.选择日志
- 从远程服务器数据库中同步数据到本地数据库 sql server 2008 开启分布
控制面板\所有控制面板项\管理工具 打开“管理工具――组件服务”,以此打开“组件服务――计算机”,在“我的电脑”上点击右键.在MSDTC选项卡中,点击“安全配置”按钮. 在安全配置窗口中做如下设置: ...
- SQL Server 2008 R2 数据库安装
操作系统 Windows server 2008 R2 数据库 SQL Server 2008 R2 注意:SQL Server 2008 R2需要操作系统首先安装.NET Frame ...
- .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 ...
- Vcenter虚拟化三部曲----SQL Server 2008 R2 数据库安装
操作系统 Windows server 2008 R2 数据库 SQL Server 2008 R2 注意:SQL Server 2008 R2需要操作系统首先安装.NET Frame ...
随机推荐
- USACO Section 2.1: Hamming Codes
挺简单的一道题 /* ID: yingzho1 LANG: C++ TASK: hamming */ #include <iostream> #include <fstream> ...
- xcode解决问题dyld: Library not loaded
一.问题 编译通过,联机调试时,应用启动闪退,XCODE的Output出现提示: dyld: Library not loaded: /System/Library/Frameworks/AdSupp ...
- HDU4675【GCD of scequence】【组合数学、费马小定理、取模】
看题解一开始还有地方不理解,果然是我的组合数学思维比较差 然后理解了之后自己敲了一个果断TLE.... 我以后果然还得多练啊 好巧妙的思路啊 知识1: 对于除法取模还需要用到费马小定理: a ^ (p ...
- Volley HTTP库系列教程(3)自定义RequestQueue和编写单例RequestQueue示例
Setting Up a RequestQueue Previous Next This lesson teaches you to Set Up a Network and Cache Use a ...
- Android模拟器使用教程
Using the Emulator In this document Overview Android Virtual Devices and the Emulator Starting and S ...
- R语言记录程序运行的时间
f <- function(start_time) { start_time <- as.POSIXct(start_time) dt <- difftime(Sys.time(), ...
- Git基础(三)
本章 就开始和大家一起学习第三块内容:远程仓储的使用操作.要参与任何一个 Git 项目的协作,必须要了解该如何管理远程仓库.远程仓库是指托管在网络上的项目仓库,可能会有好多个,其中有些你只能读,另外有 ...
- Python3 学习第十一弹: 模块学习四之sys库
sys模块 提供一些与python解释器关系紧密的变量和函数 1> argv 命令行参数 通过命令行可以向python传输参数 2> exit([arg]) 程序退出,可以返回给命令行一个 ...
- c#调用系统资源大集合-2
public static void 打开格式化对话框() { Process.Start("rundll32.exe"," shell32.dll,SHFormatDr ...
- Machine Learning for hackers读书笔记(六)正则化:文本回归
data<-'F:\\learning\\ML_for_Hackers\\ML_for_Hackers-master\\06-Regularization\\data\\' ranks < ...