This is the script I've recently started using for backing up my SQL database.
declare @datetimestamp varchar(15)
declare @bu_command varchar(4000)
declare @del_command varchar(4000)
declare @filename varchar(255)
declare @archive varchar(255)
declare @result int
set @datetimestamp =
substring(convert(varchar(32), getdate() ,120),1,4)
+ '-' + substring(convert(varchar(32), getdate() ,120),6,2)
+ '-' + substring(convert(varchar(32), getdate() ,120),9,2)
+ '_' + substring(convert(varchar(32), getdate() ,120),12,2)
+ substring(convert(varchar(32), getdate() ,120),15,2)
+ '_' + substring(convert(varchar(32), getdate() ,120),18,2)
set @filename = 'c:\Backups\xfire_' + @datetimestamp + '.bak'
set @archive = 'c:\backups\xfire_' + @datetimestamp + '.7z'
BACKUP DATABASE xfire TO DISK = @filename
set @bu_command = 'c:\7za.exe a -t7z ' + @archive + ' ' + @filename
set @del_command = 'del ' + @filename
exec @result = master..xp_cmdshell @bu_command
if (@result = 0)
begin
exec @result = master..xp_cmdshell @del_command
end
else raiserror ('7Zip error', 1, 1)