вставка даты в скрипт sql - PullRequest
1 голос
/ 14 июля 2010

Я делаю резервные копии сервера sql следующим образом в сценарии:

BACKUP DATABASE databasename TO DISK = `path'

, поскольку эта резервная копия будет автоматизирована, как мне вставить сегодняшнюю дату в 'path'?

Ответы [ 2 ]

2 голосов
/ 14 июля 2010
declare @path varchar(255), @mydb varchar(50)
SELECT @mydb = 'MyDBToBackUp'
select @path = 'C:\foo\bar\' + @mydb + '-' + convert(varchar(8),getdate(),112) + '.bak'
BACKUP DATABASE @mydb TO @path

BACKUP DATABASE принимает локальные переменные

Редактировать: последняя строка должна быть такой: Ой. К сожалению.

 BACKUP DATABASE @mydb TO DISK =  @path
2 голосов
/ 14 июля 2010

вы можете получить сегодняшнюю дату в формате ггггммдд, как этот пример

convert(varchar(8),getdate(),112)

, измените print на exec

declare @date varchar(8)
select @date = convert(varchar(8),getdate(),112)

--change print to exec
print ('BACKUP DATABASE databasename TO DISK = ''path' + @date + '''')

, который сгенерирует этот оператор

BACKUP DATABASEимя базы данных TO DISK = 'path20100714'

Возможно, вы также захотите добавить расширение, например BAK

, также посмотрите INIT и NOINIT, INIT перезапишет резервную копию, если она уже естьсуществует с таким именем NOINIT добавит, см. также: http://msdn.microsoft.com/en-us/library/ms186865.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...