Created
December 10, 2014 15:35
-
-
Save cdownie/c012be06d005a5946e41 to your computer and use it in GitHub Desktop.
Backup all Databases on SQL Server with Timestamps
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
SET NOCOUNT ON; | |
DECLARE | |
@FileName NVARCHAR(1024) | |
, @DBName NVARCHAR(256) | |
, @PathName NVARCHAR(256) | |
, @Message NVARCHAR(2048) | |
, @IsCompressed BIT | |
SELECT | |
@PathName = 'D:\BACKUP\' | |
, @IsCompressed = 1 | |
DECLARE db CURSOR LOCAL READ_ONLY FAST_FORWARD FOR | |
SELECT | |
sd.name | |
, file_path = @PathName + FileDate + '_' + name + '.bak' | |
FROM sys.databases sd | |
CROSS JOIN ( | |
SELECT FileDate = 'ABCD_' + REPLACE(CONVERT(VARCHAR(10), GETDATE(), 103), '/', '_') | |
) fd | |
WHERE sd.state_desc != 'OFFLINE' | |
AND sd.name NOT IN ('master', 'model', 'msdb', 'tempdb') | |
ORDER BY sd.name | |
OPEN db | |
FETCH NEXT FROM db INTO | |
@DBName | |
, @FileName | |
WHILE @@FETCH_STATUS = 0 BEGIN | |
DECLARE @SQL NVARCHAR(MAX) | |
SELECT @Message = REPLICATE('-', 80) + CHAR(13) + CONVERT(VARCHAR(20), GETDATE(), 120) + N': ' + @DBName | |
RAISERROR (@Message, 0, 1) WITH NOWAIT | |
SELECT @SQL = | |
'BACKUP DATABASE [' + @DBName + '] | |
TO DISK = N''' + @FileName + ''' | |
WITH FORMAT, ' + CASE WHEN @IsCompressed = 1 THEN N'COMPRESSION, ' ELSE '' END + N'INIT, STATS = 15;' | |
EXEC sys.sp_executesql @SQL | |
FETCH NEXT FROM db INTO | |
@DBName | |
, @FileName | |
END | |
CLOSE db | |
DEALLOCATE db |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment