Tuesday, March 18, 2014

Sql Server TSQL Script: Backup ALL Databases (foult tolreant / Fehlertolerant)

--TODO: Enter Profilename and Email ADress at last statement DECLARE @name VARCHAR(50) -- database name DECLARE @path VARCHAR(256) -- path for backup files DECLARE @fileName VARCHAR(256) -- filename for backup DECLARE @fileDate VARCHAR(20) -- used for file name DECLARE @FEHLER VARCHAR(MAX) DECLARE @MSG VARCHAR(MAX) SET @path = 'F:\Backup\' SET @Msg='' 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') OPEN db_cursor FETCH NEXT FROM db_cursor INTO @name WHILE @@FETCH_STATUS = 0 BEGIN SET @fileName = @path + @name + '_' + @fileDate + '.BAK' BEGIN TRY print 'BACKUP DATABASE '+@name+' TO DISK = '+@fileName; BACKUP DATABASE @name TO DISK = @fileName END TRY BEGIN CATCH set @Fehler= 'Error: BACKUP DATABASE '+@name+' TO DISK = '+@fileName print @Fehler set @MSG=@MSG+@Fehler END CATCH FETCH NEXT FROM db_cursor INTO @name END CLOSE db_cursor DEALLOCATE db_cursor --SEND Mail - use SSMS Management DatabaseMAil right click Send Testmail to get Profilename and test mail (and set up if needed EXEC msdb.dbo.sp_send_dbmail @profile_name = 'ProfileName', @recipients = 'x@y.z', @body = 'Backup Bericht SQLServer (wenn leer keine Fehler)', @subject = @MSG ;

No comments: