Create a job to take back up of a single db or the entire database. below script could serve your purpose.
declare @filePath varchar(100) declare @fileName varchar(100) declare @location varchar(200)
SET @filePath = N'C:\MyWebsites'
SET @fileName = 'Northwind_' +
- CONVERT(VARCHAR, GETDATE(), 112) + ' ' + CAST(DATEPART(HOUR, GETDATE()) AS VARCHAR) + N' ' + CAST(DATEPART(MINUTE, GETDATE()) AS VARCHAR) + N' ' + CAST(DATEPART(SECOND, GETDATE()) AS VARCHAR) + '.bak'
set @location = @filePath + @fileName BACKUP DATABASE [Northwind] TO DISK = @location with init, compression
If you want to take a complete back up of the entire database server or if you want to take multiple database backup then you can use cursor.
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-- specify database backup directory SET @path = 'C:\MyWebsites'
-- specify filename format 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') -- exclude these databases
OPEN db_cursor FETCH NEXT FROM db_cursor INTO @name
WHILE @@FETCH_STATUS = 0 BEGIN SET @fileName = @path + @name + '_' + @fileDate + '.BAK' BACKUP DATABASE @name TO DISK = @fileName WITH init, compression
FETCH NEXT FROM db_cursor INTO @name END
CLOSE db_cursor DEALLOCATE db_cursor
