Em ambientes sem estes recursos, ou onde você prefirar criar manualmente estas atividades, sugiro o script abaixo, que irá selecionar todos os databases existentes na instância do servidor e executar para cada um a instrução de backup.
Para automatizar este procedimento copie o código abaixo e coloque em um arquivo neste exemplo chamado BACKUP.SQL.
Observe no início do script que tem o destino dos arquivos gerados pela rotina, altere conforme a tua necessidade.
DECLARE @name VARCHAR(150) -- Nome do Database DECLARE @path VARCHAR(256) -- Caminho do arquivo de backup DECLARE @fileName VARCHAR(256) -- Arquivo do backup -- Define caminho de destino do backup SET @path = 'D:\Backup\' -- Cria um cursor para selecionar todas as databases, -- excluindo model, msdb e tempdb DECLARE db_cursor CURSOR FOR SELECT name FROM master.dbo.sysdatabases WHERE name NOT IN ('model','msdb','tempdb') -- Abre o cursor e faz a primeira leitura OPEN db_cursor FETCH NEXT FROM db_cursor INTO @name -- Loop de leitura das databases selecionadas WHILE @@FETCH_STATUS = 0 BEGIN SET @fileName = @path + @name + '.BAK' -- Executa o backup para o database BACKUP DATABASE @name TO DISK = @fileName WITH FORMAT; FETCH NEXT FROM db_cursor INTO @name END -- Libera recursos alocados pelo cursor CLOSE db_cursor DEALLOCATE db_cursor
A seguir crie outro arquivo chamado BACKUP.BAT com o conteúdo abaixo:
osql -E -S Servidor -i "d:\backup\sql\BackupBancos.SQL"Agora basta criar um agendamento do próprio Windows chamando o arquivo BACKUP.BAT.