mercoledì 24 giugno 2009

Backup dei DB in SqlServer

Tramite questo script è possibile eseguire il backup di tutti i databasi di SqlServer, meno quelli di sistema ovviamente.


DECLARE @name VARCHAR(50) -- Nome del Database
DECLARE @path VARCHAR(256) -- Cartella destinazione file di backup
DECLARE @fileName VARCHAR(256) -- Nome file di backup
DECLARE @fileDate VARCHAR(20) -- Data file di backup (accodata a @fileName)
DECLARE @SqlStatment VARCHAR(MAX) -- Statement T-SQL che esegue il backup

SET @path = 'F:\TEST\'

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')
ORDER BY name

OPEN db_cursor
FETCH NEXT FROM db_cursor INTO @name

WHILE @@FETCH_STATUS = 0
BEGIN
PRINT 'Elaborazione backup ' + @name + ' in corso...' + CHAR(13)

SET @fileName = @path + @name + '_' + @fileDate + '.BAK'

SET @SqlStatment = 'BACKUP DATABASE ' + @name + ' TO DISK = ''' + @fileName +
''' WITH NOFORMAT, INIT, NAME = N''' + @name + ' - Completo Database Backup''' + ', SKIP, NOREWIND, NOUNLOAD, STATS = 10'

EXEC (@SqlStatment)
PRINT CHAR(13) + 'Elaborazione backup ' + @name + ' terminata!' + CHAR(13)

FETCH NEXT FROM db_cursor INTO @name
END

CLOSE db_cursor
DEALLOCATE db_cursor

Nessun commento: