SQL Server 备份数据库到指定路径,任务实现
--Description:备份指定数据到指定路径,第一次完整备份、每月1号完整备份、每周一完整,每天增量备份
--====================================
ALTER procedure [dbo].[BackupDatabase]
@DatabaseName nvarchar(50),
@BackupPath varchar(200),
@IsDelLog int --1表示删除日志
as
declare @sql nvarchar(500);declare @dateName nvarchar(50);
declare @ClareSign int;set @ClareSign=1;
set @dateName='_'+SUBSTRING(replace(CONVERT(char(10),getdate(),21),'-',''),3,6);
if(not exists(select top 1 1 from msdb.dbo.backupset where database_name=@DatabaseName))
begin
set @sql='BACKUP DATABASE '+@DatabaseName+' TO DISK='''+@BackupPath+'f_'+@DatabaseName+@dateName+'.bak'' WITH FORMAT'
set @ClareSign=0;
end
else if(DATEPART(DAY,getdate())=1)
begin
set @sql='BACKUP DATABASE '+@DatabaseName+' TO DISK='''+@BackupPath+'m_'+@DatabaseName+@dateName+'.bak'' WITH FORMAT'
end
else if(DATEPART(weekday,getdate())=2)
begin
set @sql='BACKUP DATABASE '+@DatabaseName+' TO DISK='''+@BackupPath+'w_'+@DatabaseName+@dateName+'.bak'' WITH FORMAT'
end
else
begin
set @sql='BACKUP DATABASE '+@DatabaseName+' TO DISK='''+@BackupPath+'d_'+@DatabaseName+@dateName+'.bak'' WITH differential'
set @ClareSign=0;
end
exec (@sql)
--清除日志
if(@@ERROR=0 and @ClareSign=1 and @IsDelLog=1)
begin
--简单模式
exec('ALTER DATABASE '+@DatabaseName +' SET RECOVERY SIMPLE WITH NO_WAIT;ALTER DATABASE '+@DatabaseName +' SET RECOVERY SIMPLE')
insert into ToolsDB.dbo.TestLog(LogName,Remark) values('备份日志测试',GETDATE())
declare @FileName nvarchar(50)
if OBJECT_ID('tempdb.dbo.##bt5') is not null drop table ##bt5 --清除全局临时表
exec('select name into ##bt5 from '+@DatabaseName+'.dbo.sysfiles where groupid=0')
declare cursor_name cursor for
select name from ##bt5
open cursor_name
fetch next from cursor_name into @FileName
while(@@FETCH_STATUS=0)
begin
exec('use '+@DatabaseName+' DBCC SHRINKFILE (N'''+@FileName+''' ,1, TRUNCATEONLY)')
fetch next from cursor_name into @FileName
end
close cursor_name
deallocate cursor_name
--还原为完全模式
exec('ALTER DATABASE '+ @DatabaseName+' SET RECOVERY FULL WITH NO_WAIT;ALTER DATABASE '+ @DatabaseName+' SET RECOVERY FULL')
if OBJECT_ID('tempdb.dbo.##bt5') is not null drop table ##bt5 --清除全局临时表
end
SQL Server 备份数据库到指定路径,任务实现的更多相关文章
- C#备份及还原数据库的实现代码(粗略) // 利用C#还原数据库(SQL SERVER)备份文件到指定路径
C#数据库备份及还原 1.在用户的配置时,我们需要列出当前局域网内所有的数据库服务器,并且要列出指定服务器的所有数据库,实现代码如下: 取得数据库服务器列表: public ArrayList Get ...
- Data Base sql server 备份数据库
sql server 备份数据库 1.维护计划向导: 右键维护计划-维护计划向导-然后安装提示: 勾选自己要干的事,比如:完整备份数据库.差异备份数据库等等 2.作业计划: 如下图: SQL Serv ...
- SQL SERVER备份数据库文件(使用SSMS)
微软的SQL SERVER是市面占有率比较大的数据库,在平时的使用与维护中,备份数据是一件十分重要的! 备份操作,用微软自带的ssms(SQL Server Management Studio)工具即 ...
- SQL Server 恢复数据库至指定时间点
发生数据库误删的情况下,及时恢复数据到误操作前的状态 工具/原料 SQL Server Management Studio 数据库完整备份及日志备份 必备条件 1 数据库右键属性,在选项中查看 ...
- 使用sql查询mysql/oracle/sql server/gp数据库中指定表的字段信息(字段名/字段类型/字段长度/是否是主键/是否为空)
1,根据数据库类型拼接不同URL /** * 根据类型不同拼接连接的URL * @param dbType 1:mysql.2:oracle.3:sql server.4:gp * @param ip ...
- SQL Server ----- 备份数据库 生成(.bak)文件
转移数据库 备份数据库 选中数据库 进入后界面如图 选择合适位置进行备份 注意:选择配置好保存位置的 成功后出现 如果出现错误. 还有一种可能是哪个文件夹中已经有了一个 把文件家中的那个删了 还原 ...
- SQL SERVER 备份数据库时候错误处理
当备份数据库时候出现如下错误时候 只需要删除备份目标就行了
- SQL server 2008数据库的备份与还原、分离(转)
SQL server 2008数据库的备份与还原.分离(转) 一.SQL数据库的备份: 1.依次打开 开始菜单 → 程序 → Microsoft SQL Server 2008 → SQL Ser ...
- SQLServer2008修改sa密码的方法与SQL server 2008数据库的备份与还原
sa密码的修改转载自:http://blog.csdn.net/templar1000/article/details/20211191 SQL server 2008数据库的备份与还原转自 :htt ...
随机推荐
- Java实现根据输入的日期以及天数,获取此日期之后的天数的工作日
public static void main(String[] args) { List<String> list = new ArrayList<String>();//节 ...
- TQ2440之定时器中断0——volatile关键字的重要作用
近日,在学习<ARM处理器裸机开发实战--机制而非策略>一书,在TQ2440开发板上,按照书中实例以及光盘配套程序源代码进行Timer0中断试验,编译成功后烧写到开发板上,没有任何反应,反 ...
- Nginx随笔
1.用于代理与反代理,处理大量请求的工具. 2.主要有三大模块:handle.upstream.过滤模块.handle用于在nginx内部接到请求并进行处理的状况:upstream用于需要nginx接 ...
- java 泛型 精析
Created by Marydon on 1.概述 泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数: 这种参数类型可以用在类.接口和方法的 ...
- Hive之简单查询不启用MapReduce
假设你想查询某个表的某一列.Hive默认是会启用MapReduce Job来完毕这个任务,例如以下: 01 hive> SELECT id, money FROM m limit 10; 02 ...
- document.ready、window.onload、body.onload的区别
document的ready事件通常会比window的onload事件先发生,为什么呢? 因为document的ready是在浏览器加载解析并构建完doc文档模型时发生的,而window的onload ...
- JS禁止后退键(backspace)使浏览器后退
背景说明: 今天项目测试中,同事发现一个Bug,当键盘敲下后退键(Backspace)后,浏览器自动后退,不符合需求,故建议禁止浏览器后退键. 提出需求: 当键盘敲下后退键(Backspace)后 1 ...
- CameraManager与CameraDevice与ICameraService的相应关系
Camera2 AP Framewok中有三个比較重要的组件:CameraManager.CameraDevice.ICameraService,他们的相应关系例如以下: 一个Context中会有一个 ...
- Google Chrome调试js代码,开发者工具之调试工具常用功能
参考:Google Chrome调试js代码-http://www.open-open.com/lib/view/open1384785324165.html 重点:左下角一个{}括号图标按钮用于把杂 ...
- javascript高级程序设计第三章
看后总结: 1.区分大小写 2.标识符是有字母下划线$开头,并有字母.下划线.数字.美元符号组成. 3.建议用驼峰法命名标识符. 4.注释: 单行:// 多行: /* */ 5.严格模式: 在js ...