-- LosaDev 2019: full backup of LosaGame, LosaGame_log, LosaLogData and Backup. -- sqlcmd -S -E -v BACKUP_DIR="D:\LosaBackup" -i backup.sql (or backup.bat) -- One file per database: _yyyyMMdd_HHmm.bak in BACKUP_DIR (the folder must exist and the SQL -- Server service account needs write access). Online backup: the servers may keep running. USE [master] GO SET NOCOUNT ON DECLARE @dir nvarchar(400) = N'$(BACKUP_DIR)', @stamp nvarchar(20) = FORMAT(GETDATE(), 'yyyyMMdd_HHmm'), @db sysname, @file nvarchar(600) IF RIGHT(@dir, 1) = N'\' SET @dir = LEFT(@dir, LEN(@dir) - 1) DECLARE d CURSOR LOCAL FAST_FORWARD FOR SELECT v FROM (VALUES (N'LosaGame'), (N'LosaGame_log'), (N'LosaLogData'), (N'Backup')) t(v) OPEN d FETCH NEXT FROM d INTO @db WHILE @@FETCH_STATUS = 0 BEGIN IF DB_ID(@db) IS NOT NULL BEGIN SET @file = @dir + N'\' + @db + N'_' + @stamp + N'.bak' BACKUP DATABASE @db TO DISK = @file WITH INIT, CHECKSUM, STATS = 25 PRINT 'backup ' + @db + ' -> ' + @file END ELSE PRINT 'skip ' + @db + ' (does not exist)' FETCH NEXT FROM d INTO @db END CLOSE d DEALLOCATE d GO