2010-07-14 3 views

ответ

2
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 
+0

http://stackoverflow.com/questions/3248733/sql-script-returns-update-sysdevices –

2

вы можете получить текущую дату в формате ГГГГММДД как этот

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

например, изменение печати для 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 '

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

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

+0

спасибо, но, как я бы вставить его в мое заявление пожалуйста/ –

Смежные вопросы