Usuário com melhor resposta
Nome Backup Personalizado

Pergunta
-
Prezados, gostaria de ter um exemplo de rotina de Backup, onde personalizariamos o Nome do mesmo, com isso teria um backup diario no formato NOMEDOBACKUP+DATADODIA que ficaria NOMEBACKUP20130118. Alguem poderia me ajudar?
Abs a todos
Marcelo Nogueira
Respostas
-
Olá Marcelinho...
Eu uso essa query. Ela faz backup de todos os bancos ou somente dos selecionados, com o nome no formato que você achar
DECLARE @name VARCHAR(50)
-- database name
DECLARE @path VARCHAR(256)
-- path for backup files
DECLARE @fileName VARCHAR(256)
-- filename for backup
DECLARE @fileDate VARCHAR(20)
-- used for file name
SET @path = 'D:\MSSQLSERVER\BACKUP'
SELECT @fileDate = CONVERT(VARCHAR(20), GETDATE(), 112)
DECLARE db_cursor CURSORFOR
SELECT name
FROM master.dbo.sysdatabases
--WHERE name IN ('DB_1', 'DB_2') --- Se comentado, processa todos os bancos de dados.
OPEN db_cursor
FETCH NEXT FROM db_cursor INTO @name
WHILE @@FETCH_STATUS = 0
BEGIN
SET @fileName = @path + '_' + @name + '_' + @fileDate + '.BAK'
BACKUP DATABASE @name TO DISK = @fileName
FETCH NEXT FROM db_cursor INTO @name
END
CLOSE db_cursor
DEALLOCATE db_cursor
Espero que lhe seja útil.
Abraço !!!
Não esqueça de marcar o post como útil caso tenha te ajudado.
- Editado Roberson Naves sexta-feira, 18 de janeiro de 2013 19:31
- Sugerido como Resposta Logan Destefani Merazzi sábado, 19 de janeiro de 2013 14:17
- Marcado como Resposta Marcelinho FaberCode domingo, 20 de janeiro de 2013 14:12
Todas as Respostas
-
Olá Marcelinho...
Eu uso essa query. Ela faz backup de todos os bancos ou somente dos selecionados, com o nome no formato que você achar
DECLARE @name VARCHAR(50)
-- database name
DECLARE @path VARCHAR(256)
-- path for backup files
DECLARE @fileName VARCHAR(256)
-- filename for backup
DECLARE @fileDate VARCHAR(20)
-- used for file name
SET @path = 'D:\MSSQLSERVER\BACKUP'
SELECT @fileDate = CONVERT(VARCHAR(20), GETDATE(), 112)
DECLARE db_cursor CURSORFOR
SELECT name
FROM master.dbo.sysdatabases
--WHERE name IN ('DB_1', 'DB_2') --- Se comentado, processa todos os bancos de dados.
OPEN db_cursor
FETCH NEXT FROM db_cursor INTO @name
WHILE @@FETCH_STATUS = 0
BEGIN
SET @fileName = @path + '_' + @name + '_' + @fileDate + '.BAK'
BACKUP DATABASE @name TO DISK = @fileName
FETCH NEXT FROM db_cursor INTO @name
END
CLOSE db_cursor
DEALLOCATE db_cursor
Espero que lhe seja útil.
Abraço !!!
Não esqueça de marcar o post como útil caso tenha te ajudado.
- Editado Roberson Naves sexta-feira, 18 de janeiro de 2013 19:31
- Sugerido como Resposta Logan Destefani Merazzi sábado, 19 de janeiro de 2013 14:17
- Marcado como Resposta Marcelinho FaberCode domingo, 20 de janeiro de 2013 14:12
-