EKsumic's Blog

let today = new Beginning();

Click the left button to use the catalog.

OR

SQL Server 2008 R2 Express的数据库备份问题

1.在对应C盘目录新建文件夹,命名为Database_Backup

GO

DECLARE

@backupTime VARCHAR(20)

DECLARE

@fileName VARCHAR(1000)

SELECT

@backupTime=(CONVERT(VARCHAR(8), GETDATE(), 112) +REPLACE(CONVERT(VARCHAR(5), GETDATE(), 114), ':', ''))

SELECT

@fileName='C:\Database_Backup\DB_'[email protected]+'.bak'

backup database 你的数据库名称 to [email protected]

2.可以在Master直接执行,这会生成一个bak文件,是你要的备份。

写一个批处理文件,命名为backup_database.bat ,我们也把它放在 C:\Database_Backup下。

sqlcmd -S . -i C:\Database_Backup\backup.sql

(bat文件可以双击执行,这里执行的是这个同级目录下的backup.sql文件)

3.然后新建一个Windows计划任务,定期(比如每天)执行此批处理命令。

这样就实现了每天备份数据库的需求。


然后有一个重点需要对新手说一下,

首先这个方法不能远程备份,也就是连接别的数据备份别的数据库是没有用的,

它只会备份你本地的bak文件,

另外还原也必须是本地的,

而且这个bak文件很大程度上是数据的备份

我尝试过结构完全一样的数据库(仅数据不同),进行还原实验,好像是行不通的。

想要把数据库的所有内容备份下来的话,

最好选用生成数据库脚本的方式,

选择表,

在高级选项卡中,选择包括架构和数据,

确认,然后点击下一步直至完成。(完成之后到你保存的路径去找那个脚本文件,想还原数据的话,直接在Master执行脚本就行了)

这个脚本是在你完全没有数据库的情况下,快速克隆一个完全一样的数据库。


当然,这种方法按理说可以用新建查询的方式,做一个SQL文件,再写一个批处理文件对其执行的。

但现在没这个需求,先这样吧……

正式版本的SQL Server应该是有这样的计划任务的。

This article was last edited at 2019-12-26 00:58:02

* *