2017/03/15

SQL Server - Backup a todas las bases de datos

Las copias de seguridad de las bases de datos son muy importantes es por eso que se recomienda hacerlas periódicamente para no perder alguna información valiosa que estas contengan.

Ya sea que estés trabajando locamente o en un servidor hacerlo una a una puede ser tedioso y hasta aburrido, menos mal que SQL no da la facilidad de hacerlo vía Script y con un cursos podemos sacarle copia a todas nuestras bases de datos.

Para ello pueden usar este script:
DECLARE @name VARCHAR(50) -- Nombre de la base de datos  
DECLARE @path VARCHAR(256) -- Ruta de acceso para archivos de copia de seguridad
DECLARE @fileName VARCHAR(256) -- Nombre de archivo para copia de seguridad  
DECLARE @fileDate VARCHAR(20) -- Utilizado para el nombre de archivo
 
-- Especificar directorio de copia de seguridad de la base de datos
SET @path = 'C:\Backup\'  
 
-- Especificar el formato del nombre de archivo
SELECT @fileDate = CONVERT(VARCHAR(20) ,GETDATE() ,112) 
 
DECLARE db_cursor CURSOR  
FOR
    SELECT NAME
    FROM   MASTER.dbo.sysdatabases
    WHERE  NAME NOT IN ('master' ,'model' ,'msdb' ,'tempdb')  -- Excluir estas bases de datos
 
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

Fuente: https://www.mssqltips.com