Backup SQL Server databases with T-SQL

Share on:
 1DECLARE @name VARCHAR(50) -- database name
 2DECLARE @path VARCHAR(256) -- path for backup files
 3DECLARE @fileName VARCHAR(256) -- filename for backup
 4DECLARE @fileDate VARCHAR(20) -- used for file name
 5DECLARE @debug BIT = 0
 6
 7-- specify database backup directory
 8SET @path = 'c:\temp\db-backup\' --must exist on disk
 9
10-- specify filename format
11SELECT @fileDate = CONVERT(VARCHAR(20),GETDATE(),112)
12
13DECLARE db_cursor CURSOR FOR
14SELECT name
15FROM master.dbo.sysdatabases
16WHERE name NOT IN ('tempdb') -- exclude these databases
17
18OPEN db_cursor
19FETCH NEXT FROM db_cursor INTO @name
20
21	WHILE @@FETCH_STATUS = 0
22	BEGIN
23		SET @fileName = @path + @name  + '.BAK'
24		if @debug = 0 BACKUP DATABASE @name TO DISK = @fileName with init, format, COMPRESSION
25		if @debug = 1 print 'backup ' + @name + ' to ' + @fileName
26
27		FETCH NEXT FROM db_cursor INTO @name
28	END
29
30CLOSE db_cursor
31DEALLOCATE db_cursor