因为是免费的且单个数据库可以支持到10GB,对于一般企业完全足够了,也就将就使用了,备份将分为两步:

1、创建备份脚本

2、创建系统的计划任务进行每天的备份

详细做法如下:

1、创建备份脚本

打开SSMS/用其它编辑器也可以,新建查询,输入如下代码,这里考虑到要备份所有数据库,所以使用master数据库来创建执行脚本,亦可使用超简单的对于单独数据库操作,只需要几个命令即可,后文会给出示例,以下为完整备份所有数据库的语句。

USE [master]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO CREATE PROCEDURE [dbo].[sp_BackupDatabases]
@databaseName sysname = null, --数据库名称
@backupLocation nvarchar(200) --备份位置
AS
SET NOCOUNT ON;
DECLARE @DBs TABLE
(
ID int IDENTITY PRIMARY KEY,
DBNAME nvarchar(500)
)
--用一个表来存放找到的所有数据库名
INSERT INTO @DBs (DBNAME)
SELECT Name FROM master.sys.databases
where state=0 AND name=@DatabaseName OR @DatabaseName IS NULL ORDER BY Name -- 过滤掉不需要备份的数据库(自定不需要备份的数据库名称填入括号内)
DELETE @DBs where DBNAME IN ('master','model','msdb','tempdb') DECLARE @BackupFile varchar(100) --备份文件名称
DECLARE @DBNAME varchar(300) --数据库名称
DECLARE @sqlCommand NVARCHAR(1000) --命令名称
DECLARE @dateTime NVARCHAR(20) --日期时间
DECLARE @Loop int --循环备份所找到的数据库 SELECT @Loop = min(ID) FROM @DBs --从第1个开始备份 WHILE @Loop IS NOT NULL --有数据库要备份时进行操作
BEGIN
--获得得数据库ID
SET @DBNAME = '['+(SELECT DBNAME FROM @DBs WHERE ID = @Loop)+']' --设置当前日期和时间,格式为年月日
SET @dateTime = REPLACE(CONVERT(VARCHAR, GETDATE(),112),'/','') --设置备份文件名称,例如: D:\SQLBak\dbname_FULL_20171121.BAK
SET @BackupFile = @backupLocation+REPLACE(REPLACE(@DBNAME, '[',''),']','')+ '_FULL_'+ @dateTime+ '.BAK' --按类型执行备份操作
SET @sqlCommand = 'BACKUP DATABASE ' +@DBNAME+ ' TO DISK = '''+@BackupFile+ ''' WITH INIT, NOSKIP, NOFORMAT' --开始执行备份命令
EXEC(@sqlCommand) --备份下一个数据库
SELECT @Loop = min(ID) FROM @DBs where ID>@Loop END

在SSMS中执行完上面的代码后,将会在master数据库中产一个存储过程,如下图示:

现立建立几个数据库来测试,环境中我建立了test、test01、test02三个数据库,

在SSMS中执行刚才建立的存储过程,

EXEC master.dbo.sp_BackupDatabases @backupLocation='D:\SQLBackups\'

@后面是指定备份文件存放路径,执行结束后可以在D:\SQLBackups文件夹中看到已经备份的文件,没有错误产生,对比上图中的数据库可以看出这就是想要的结果,如下图:

创建命令备份,这里将离开SSMS环境来操作。

sqlcmd -S . -E -Q "EXEC master.dbo.sp_BackupDatabases @backupLocation='D:\SQLBackups\'"

对上面的命令做下注释

Sqlcmd 是SQL自带的命令工具,

-S(大写)是指定服务器,在本机的话就用点(.)表示,两边都有空格

-E(大写)表明是信任的连接

-Q(大写)命令行查询并且完成后退出

打开CMD窗口,执行上面的语句输出是正常的,说明备份成功了,如下图:

在C盘bak目录中建立了.bat批处理文件,将上面的语句放入文件中,将如下图:

2、创建系统的计划任务进行每天的备份

文件建立好后打开控制面板-管理工具-任务计划,建立一个任务即可,如下图。

附注:简单的语句,此种情况需要每个数据库建立一个存储过程来操作,适合只有一个数据库或是少量的,将上面的存储过程内容改成如下的即可,其它一样操作。

USE test
CREATE PROCEDURE [dbo].[sp_BackupDatabases]
AS
--先设置一个变量存放保存位置不然会出错,因为要按日期来备份,不用的可以去掉这部分,则只需要一条语句即可。
DECLARE @SavePath NVARCHAR(300)
SET @SavePath='D:\SqlFullBak\test_BAK'+ CONVERT(VARCHAR, GETDATE(),112)
BACKUP DATABASE test TO DISK = @SavePath WITH INIT, NOSKIP, NOFORMAT END

PS: 欢迎转载,转载请保留出处,谢谢。

参考链接:https://support.microsoft.com/en-us/help/2019698/how-to-schedule-and-automate-backups-of-sql-server-databases-in-sql-se

在SQL Server Express版本中没有代理功能如何自动备份数据库的更多相关文章

  1. SQL SERVER怎样将某个服务器上面的数据自动备份到另一台服务器上面(异地备份)

    一:试验背景 异地备份好处:(待补充) 1:异地备份了把原有服务器数据放在另外一个位置,避免些物理损害.  比把数据刻录光盘和原始数据放同房间了房间失火了备份数据也没有了要放另外地方避免了  就是备份 ...

  2. Microsoft SQL Server Express各版本对比

    Microsoft® SQL Server® 2016 Express 支持的操作系统 Windows 10 , Windows 8, Windows Server 2012, Windows Ser ...

  3. 如何安全的将VMware vCenter Server使用的SQL Server Express数据库平滑升级到完整版

    背景: 由于建设初期使用的vSphere vCenter for Windows版,其中安装自动化过程中会使用SQL Server Express的免费版数据库进行基础环境构建.而此时随着业务量的增加 ...

  4. SQL Server 2005 版本的操作系统兼容性详细列表

    操作系统要求(32 位) 此表显示对于每种 32 位版本的 SQL Server 2005,操作系统是否可以运行其服务器软件. 有关如何在 Windows Server 2008 上安装 SQL Se ...

  5. [C#]SQL Server Express LocalDb(SqlLocalDb)的一些体会

    真觉得自己的知识面还是比较窄,在此之前,居然还不知道SqlLocalDb. SqlLocalDb是啥?其实就是简化SQL Server的本地数据库,可以这样子说,SQL Server既可以作为远程,也 ...

  6. SQL Server与SQL Server Express的区别

    SQL Server Express 2005(以下简称 SQLExpress) 是由微软公司开发的 SQL Server 2005(以下简称 SQL2005)的缩减版,这个版本是免费的,它继承了 S ...

  7. SQL SERVER 2005/2008 中关于架构的理解(二)

    本文上接SQL SERVER 2005/2008 中关于架构的理解(一)      架构的作用与示例 用户与架构(schema)分开,让数据库内各对象不再绑在某个用户账号上,可以解决SQL SERVE ...

  8. SQL SERVER 2005/2008 中关于架构的理解(一)

    SQL SERVER 2005/2008 中关于架构的理解(一) 在一次的实际工作中碰到以下情况,在 SQL SERVER 2008中,新建了一个新用户去访问几张由其他用户创建的表,但是无法进行查询, ...

  9. 使用Visual Studio下自带的SQL Server Express

    软件环境:Windows7(x64) + Visual Studio 2010 + SQL Server Express 2008 1.配置数据库 装VS2010不小心把自带的SQL Server 2 ...

随机推荐

  1. Hadoop(五)搭建Hadoop与Java访问HDFS集群

    前言 上一篇详细介绍了HDFS集群,还有操作HDFS集群的一些命令,常用的命令: hdfs dfs -ls xxx hdfs dfs -mkdir -p /xxx/xxx hdfs dfs -cat ...

  2. app启动页问题

    今天自己做的小作品准备提交,就差一个启动页,各种百度,各种搜,结果还好最后终于出来了,和大家分享一下,这个过程中遇到的各种小问题.(注XCode版本为7.2) 1.启动页一般都是图片,因为苹果有4,4 ...

  3. 怎么用SQL语句备份和恢复数据库?

    BACKUP DATABASE "mydb" TO DISK ='C:\mybak.db' with init RESTORE DATABASE "mydb" ...

  4. 图论 Warshall 和Floyd 矩阵传递闭包

    首先我们先说下图论,一般图存储可以使用邻接矩阵,或邻接表,一般使用邻接矩阵在稠密图比较省空间. 我们来说下有向图,一般的有向图也是图,图可以分为稠密图,稀疏图,那么从意思上,稠密图就是点的边比较多,稀 ...

  5. escape、encodeURI和encodeURIComponent的区别及使用

    编码 javascript中的编码函数有三种 escape(string) encodeURI(string) encodeURIComponent(string) 解码 相应的解码函数也有以下三种 ...

  6. 在centos6上实现LAMP的FPM模式

    原理 http使用一次编译法编译安装,php独立服务fpm实现. 软件版本 在本次实验中,我们需要用到的软件版本如下: apr-1.6.2 apr-util-1.6.0 httpd-2.4.28 ma ...

  7. C#常用单元测试框架比较:XUnit, NUnit, 和 Visual Studio(MSTest)

    做过单元测试的同学大概都知道以上几种测试框架,但我一直很好奇它们到底有什么不同,然后搜到了一篇不错的文章清楚地解释了这几种框架的最大不同之处. 地址在这里:http://www.tuicool.com ...

  8. Yii2之行为

    Yii三大特性:属性.事件.行为.前面两篇文章已经分别讲解了属性和事件,本文接着讲讲yii的行为,分析yii行为的实现原理. 在yii中,一个对象绑定了行为之后,就拥有了所绑定行为拥有的所有事件,而且 ...

  9. LeetCode 78. Subsets(子集合)

    Given a set of distinct integers, nums, return all possible subsets. Note: The solution set must not ...

  10. LAMP 实现全过程及wordpress的搭建

    一.介绍 1. LAM(M)P: L:linux A:apache (httpd) M:mysql, mariadb M:memcached 缓存 P:php, perl, python WEB 资源 ...