Как сделать резервную копию одной конкретной базы данных с моего сервера базы данных - PullRequest
0 голосов
/ 19 апреля 2019

Привет, я хочу сделать резервную копию одной базы данных моего сервера баз данных, используя 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

1 Ответ

3 голосов
/ 19 апреля 2019

Если имя базы данных известно, тогда зачем использовать цикл 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...