Sql Express数据备份和还原
参考文章:在SQL Server Express版本中没有代理功能如何自动备份数据库
首先用以下脚本,生成可以自动备份数据库的存储过程:
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
第二步执行存储过程,实现备份文件生成:
EXEC master.dbo.sp_BackupDatabases @databaseName='myTest_Db', @backupLocation='D:\testAutoDBBack\'
一个参数是要备份的数据库名称,第二个参数是:要存放备份文件的文件夹,提前在服务器上建好文件夹。
第三步把生成好的数据库备份文件,复制到目标文件夹中,然后在SQL Manager Studio中进行还原。
本文基本没有什么原创内容,只是按照参考文章实验了一下。实验结果可以实现。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!