Backup all SQL Server databases using a script:

Problem:

We need to backup all databases on your server automatically using T-SQL on MS SQL Server.

Solution:

    DECLARE @name VARCHAR(50)
    DECLARE @path VARCHAR(256)
    DECLARE @fileName VARCHAR(256)
    DECLARE @fileDate VARCHAR(20)
 
    -- specify database backup directory
    SET @path = 'C:\DatabaseScriptBackupFolder\'  
 
    -- specify filename format
    SELECT @fileDate = CONVERT(VARCHAR(20),GETDATE(),112) + '_' + REPLACE(CONVERT(VARCHAR(20),GETDATE(),108),':','')

    DECLARE db_cursor CURSOR READ_ONLY FOR  
    SELECT name
    FROM master.sys.databases
    WHERE name NOT IN ('master','model','msdb','tempdb')  -- exclude these databases
    AND state = 0 -- database is online
    AND is_in_standby = 0 -- database is not read only for log shipping
 

    -- Loop through all databases and Backup
    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  
 
       FETCH NEXT FROM db_cursor INTO @name   
    END   

    CLOSE db_cursor   
    DEALLOCATE db_cursor


Note: In this is bypassing the system databases!