• Saltar a la navegación principal
  • Saltar al contenido principal
LUISCALDEVILLA

LUISCALDEVILLA

El blog personal de Luis Caldevilla

  • Inicio
  • Sobre mi
  • Recursos
  • Contactar

04/08/2020 by lcaldevilla

Hacer backup por lotes en SQL

Algunas veces necesitamos realizar un backup de todas las bases de datos que tenemos en nuestro servidor SQL Server.

Afortunadamente T-SQL viene en nuestra ayuda facilitándonos esta tarea. El proceso que vamos a seguir consta de los siguientes pasos:

  1. Especificar la ruta donde almacenaremos los backup.
  2. Especificar el nombre el formato del fichero backup.
  3. Selecciona la lista de bases de datos a realizar backups.
  4. Realizamos un bucle entre la lista de base de datos.
DECLARE @name VARCHAR(50) -- nombre base de datos  
DECLARE @path VARCHAR(256) -- ruta almacenamiento base datos  
DECLARE @fileName VARCHAR(256) -- nombre fichero backup
DECLARE @fileDate VARCHAR(20) -- fecha fichero backup
 
-- especificar carpeta destino
SET @path = 'C:\BackupSQL\'  
 
-- formato de los ficheros backup
SELECT @fileDate = CONVERT(VARCHAR(20),GETDATE(),112) 
 
 -- cursor para recorrer las bases de datos
DECLARE db_cursor CURSOR READ_ONLY FOR  
SELECT name 
FROM master.sys.databases 
WHERE name NOT IN ('master','model','msdb','tempdb')  -- bases de datos excluidas
AND state = 0 -- esta online
AND is_in_standby = 0 -- 
 
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

Publicado en: General