multumesc.....
am aflat ca trebuie sa mai includ ceva......
procedura respectiva (de mai sus) trebuie sa faca backup pentru toate bazele de pe server mai putin cele de system
as vrea daca puteti sa ma ajutati sa modific procedura astefl incat sa citeasca ce baze de date exista pe server....sa scoata numele lor....sa creeze cate un folder pt fiecare si sa sa faca backup in folderul respectiv al bazei de date......se poate face cu un cursor?
multumesc
am atasat procedura asa cum am adus-o pana in faza asta:
create proc _BackUp
@param bit Out
as
set @param=0
declare
@now nvarchar(100),
@luna nvarchar(10),
@LogicalBackup nvarchar(300),
@CaleBackup0 nvarchar(300),
@CaleBackup nvarchar(300),
@strSQL nvarchar(4000)
declare
@dataRef datetime,
@month int,
@year int
set @dataRef=getdate()
set @month = datepart(mm,@dataRef)
set @year = datepart(yyyy,@dataRef)
declare @i int
select
@luna=cast(month(GETDATE()) as nvarchar(50)),
@i=cast(@luna as int)-1
if len(@luna)=1 set @luna='0'+cast(@luna as nvarchar(50))
--EXEC master..xp_cmdshell 'mkdir D:\TEST'
EXEC master..xp_cmdshell 'mkdir "D:\Program Files\Microsoft SQL Server\MSSQL\BACKUP\TEST"'
-- Create a logical backup device for the full database backup
set @now=cast(day(GETDATE()) as nvarchar(50))+''+@luna+''+cast(year(GETDATE()) as nvarchar(50))+'_'+cast(DATEPART(hour, GETDATE()) as nvarchar(50))+''+cast(DATEPART(minute, GETDATE()) as nvarchar(50))+''+cast(DATEPART(second, GETDATE()) as nvarchar(50))
set @CaleBackup0='D:\Program Files\Microsoft SQL Server\MSSQL\BACKUP\TEST\TEST_'+@now
set @CaleBackup=@CaleBackup0+'.BAK'
set @LogicalBackup='TEST_'+@now
print 'EXEC master..sp_addumpdevice ''disk'', '''+@LogicalBackup+''', '''+@CaleBackup+''''
exec('EXEC master..sp_addumpdevice ''disk'', '''+@LogicalBackup+''', '''+@CaleBackup+'''')
-- Back up the full database
exec('BACKUP DATABASE TEST TO '+@LogicalBackup)
set @param=1
return @param
GO