Inquiridor
Tem como incluir a data no final do arquivo????

Pergunta
-
Senhores tenho conseguido realizar o backup numa boa, com as instruções, só gostaria de ter várias versões do arquivo e no caso com as respectivas datas dos dias em que foi realizado. No job que criei ele apenas sobrescreve o arquivo anterior. Alguem sabe como acrescentar a data no final do arquivo? qual a variavel de sistema pra isso???
Todas as Respostas
-
Boa Tarde,
Isso é possível de ser feito se você utilizar planos de manutenção. Admitindo que você deseja fazer isso apenas com o comando, será necessário gerar uma SQL dinâmica para isso. Algo bem similar ao script abaixo:
DECLARE
@banco VARCHAR(100)DECLARE
@local VARCHAR(200)DECLARE
@cmdSQL VARCHAR(1000)DECLARE
@marca CHAR(8)SET
@banco = 'MeuBanco'SET
@local = 'C:\Backups\'SET
@marca = CAST(YEAR(GETDATE()) AS CHAR(4)) + RIGHT('0' + CAST(MONTH(GETDATE()) AS VARCHAR(2)),2) + RIGHT('0' + CAST(DAY(GETDATE()) AS VARCHAR(2)),2)SET
@cmdSQL = 'BACKUP DATABASE ' + @banco + ' TO DISK = ' + ''''SET
@cmdSQL = @cmdSQL + @local + @banco + @marca + '.BAK' + ''''EXEC
(@cmdSQL)Você pode evoluir essa construção para colocar outros parâmetros como a hora, o minuto, o segundo, etc. É possível também avaliar o tipo de backup e executar a instrução correspondente (backup database, backup log), etc.
[ ]s,
Gustavo
-
Marcos,
Tem sim, veja este código de exemplo:
Code BlockDeclare
@Comando VarChar(1000)Set
@comando='Backup Database Laboratorio To Disk = ''F:\SYS\MSSQL_BACKUP\Laboratorio-Diff.bak' +Convert(Char(10),GetDate(),103) +' With Differential, Init,Description=''Backup Laboratório - Posição diferencial em relação ao Backup Full'
Select
@Comando -
Oi Jr.
Sua tentativa foi boa e bem mais fácil e direta que a minha.
No entanto, utilizar o CONVERT vai trazer os caractéres "/" e nesse caso o caminho do backup ficará inválido. Uma tentativa melhor seria:
Declare
@Comando VarChar(1000)Set
@comando='Backup Database Laboratorio To Disk = ''F:\SYS\MSSQL_BACKUP\Laboratorio-Diff.bak'+
Convert(Char(10),GetDate(),112)+
' With Differential, Init,Description=''Backup Laboratório - Posição diferencial em relação ao Backup Full'
Select
@ComandoAinda que mais "direta", gosto de colocar da forma como postei, pelo fato de haver mais controle no formato data, hora, etc. O Convert sozinho não conseguiria colocar algo no formato YYYYMMDD_HHMM por exemplo.
[ ]s,
Gustavo
-
-
-