When we have several databases on a Server to backup, it is very time-consuming to backup all databases manually. In such case, we can use T-SQL to automate these tasks. We can use SQL Server Management Studio to back up the databases or even use Maintenance Plans, but using T-SQL is a much simpler and faster approach.
Using T-SQL, we can generate backup commands. With the use of cursors, we can cursor through all of the databases to back them up one by one.
  1. DECLARE @name VARCHAR(50) -- database name
  2. DECLARE @path VARCHAR(256) -- path for backup files
  3. DECLARE @fileName VARCHAR(256) -- filename for backup
  4. DECLARE @fileDate VARCHAR(20) -- used for file name
  5. -- specify database backup directory
  6. SET @path = 'C:\SQL_Server_Backup\'
  7. -- specify filename format
  8. -- SELECT @fileDate = CONVERT(VARCHAR(20),GETDATE(),112)
  9. SELECT @fileDate = CONVERT(VARCHAR(20),GETDATE(),112) + REPLACE(CONVERT(VARCHAR(20),GETDATE(),108),':','')
  10. DECLARE db_cursor CURSOR READ_ONLY FOR
  11. SELECT name
  12. FROM master.dbo.sysdatabases
  13. WHERE name NOT IN ('master','model','msdb','tempdb') -- exclude these databases
  14. OPEN db_cursor
  15. FETCH NEXT FROM db_cursor INTO @name
  16. WHILE @@FETCH_STATUS = 0
  17. BEGIN
  18. SET @fileName = @path + @name + '_' + @fileDate + '.BAK'
  19. BACKUP DATABASE @name TO DISK = @fileName
  20. FETCH NEXT FROM db_cursor INTO @name
  21. END
  22. CLOSE db_cursor
  23. DEALLOCATE db_cursor
The above T-SQL will back up each database within the instance of SQL Server. Note that the @path is to be replaced by the backup directory. In my case, the backup directory is ‘C:\SQL_Server_Backup\’.

File Naming Format

DBname_YYYYDDMM.BAK
  1. -- specify filename format
  2. SELECT @fileDate = CONVERT(VARCHAR(20),GETDATE(),112)
DBname_YYYYDDMM_HHMMSS.BAK
  1. -- specify filename format
  2. SELECT @fileDate = CONVERT(VARCHAR(20),GETDATE(),112)
SCREENSHOT

When we have more databases on a Server to backup, it is very time to consume to backup all database manually. In such case, we can use T-SQL to automate these tasks. Using T-SQL we can generate backup commands. With the use of cursors, we can cursor through all of the databases to backup them one by one.

All databases are backed up with single T-SQL script.

When we have more databases on a Server to backup, it is very time to consume to backup all database manually. In such case, we can use T-SQL to automate these tasks. Using T-SQL we can generate backup commands. With the use of cursors, we can cursor through all of the databases to backup them one by one.
This script will allow you to back up all the databases on the fly. The script looks for the .mdf file in your SQL instance and backs all of the files it finds except the system database.