Hola Isaias con mucho gusto te paso lo siguiente:
1) El contenido del bat:
SQLCMD -q "Exec mspaldo" -U sa -P sql -S SERVIDOR\SQL
2) El contenido de un archivo sql que está enlazado al bat es el siguiente:
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
GO
ALTER Proc [dbo].[mspaldo] As
DECLARE @nombreBBDD varchar(255),
@nombreArchivoBackup varchar(255),
@comandoBorrado varchar(300),
@fecha varchar(255),
@existe int
EXEC sp_configure 'show advanced options',1
RECONFIGURE
EXEC sp_configure xp_cmdshell,1
RECONFIGURE
DECLARE miCursor CURSOR
FOR
select name from sys.databases where name <> 'tempdb'
OPEN miCursor
FETCH miCursor INTO @nombreBBDD
WHILE(@@FETCH_STATUS =0)
BEGIN
SET @fecha = CONVERT(varchar(255),DATEPART(d,GETDATE()));
SET @fecha = @fecha +'_'+CONVERT(varchar(255),DATEPART(m,GETDATE()));
SET @fecha = @fecha +'_'+CONVERT(varchar(255),DATEPART(yyyy,GETDATE()) );
SET @nombreArchivoBackup = 'C:\prueba\'
[email protected]+'_'
[email protected]+'.bak'
-- Miramos si existe el archivo
EXEC xp_fileexist @nombreArchivoBackup, @existe output
SET @comandoBorrado = 'del '
[email protected]
IF @existe = 1
EXEC xp_cmdshell @comandoBorrado
backup database @nombreBBDD to
[email protected]
FETCH miCursor INTO @nombreBBDD
END CLOSE miCursor
DEALLOCATE miCursor
EXEC sp_configure xp_cmdshell,0
RECONFIGURE
EXEC sp_configure 'show advanced options',0
RECONFIGURE
Es importante comentarte que estos archivos me estan corriendo sin ningun problema en otro servidor.