2010-07-14 10 views

Répondre

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 prend des variables locales

Edit: la dernière ligne devrait être ceci: Oups. Pardon.

BACKUP DATABASE @mydb TO DISK = @path 
+0

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

2

vous pouvez obtenir la date d'aujourd'hui au format aaaammjj comme celui-ci

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

exemple, l'impression de changement à exec

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

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

qui va générer cette déclaration

BACKUP BASE DE DONNÉES DatabaseName DISK = ' path20100714 '

Vous voulez probablement aussi ajouter une extension comme BAK

aussi regarder dans INIT et NOINIT, INIT remplacera la sauvegarde si elle existe déjà avec ce nom NOINIT ajoutera, voir aussi: http://msdn.microsoft.com/en-us/library/ms186865.aspx

+0

merci, mais comment je l'insérer dans ma déclaration s'il vous plaît/ –