如何从数据库服务器备份一个特定的数据库

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何从数据库服务器备份一个特定的数据库相关的知识,希望对你有一定的参考价值。

您好我想使用bat和sql文件备份我的数据库服务器的一个数据库。

sqlcmd -S HEIST-BERG-SL\SQLEXPRESS -E -Q "C:\SALTO\Automatic Backups\scripts\backupDB.sql"

PAUSE

目前我在这段代码中遗漏了一些东西来获取我的特定数据库名为“Salto_Test”,当我运行上面的代码我备份服务器上的所有数据库,那不是我想要的。

SQL

declare @datstr as varchar(100)=''
declare @currdate as datetime=getdate()
set @datstr=cast(DATEPART(YYYY,@currDate) as varchar(5))+right('00'+cast(DATEPART(MM,@currDate)as varchar(5)),2)+right('00'+cast(DATEPART(DD,@currDate)as varchar(5)),2)+right('00'+cast(DATEPART(HH,@currDate)as varchar(5)),2)+right('00'+cast(DATEPART(MINUTE,@currDate) as varchar(5)),2)
declare @path as varchar(500)='C:\SALTO\Automatic Backups\Salto_Test_db_' + @datstr +'.BAK'
backup database Salto_Test to disk= @path
答案

如果数据库名称已知,那么为什么要使用while循环和查询字符串,您可以直接编写查询,请在下面替换您的SQL文件代码。

declare @datstr as varchar(100)=''
declare @currdate as datetime=getdate()
set @datstr=cast(DATEPART(YYYY,@currDate) as varchar(5))+right('00'+cast(DATEPART(MM,@currDate)as varchar(5)),2)+right('00'+cast(DATEPART(DD,@currDate)as varchar(5)),2)+right('00'+cast(DATEPART(HH,@currDate)as varchar(5)),2)+right('00'+cast(DATEPART(MINUTE,@currDate) as varchar(5)),2)
declare @path as varchar(500)='C:\SALTO\Automatic Backups\Salto_Test_db_' + @datstr +'.BAK'
backup database Salto_Test to disk= @path

以上是关于如何从数据库服务器备份一个特定的数据库的主要内容,如果未能解决你的问题,请参考以下文章

如何从REC备份的data中找回特定的应用数据

如何从 Postgres Heroku 上的先前备份中恢复特定数据? (例如,意外删除的行)

从 hsqldb 备份中仅导入特定行

如何从活动意图到特定片段?

如何从活动意图到特定片段

Oracle数据库从RMAN备份集片段还原指定单个归档日志进行日志挖掘分析