Vannak esetek, amikor nem kell semmi más mentés, csak full adatbázis mentés, de az minden adatbázisomról – kivéve tempdb. Az alábbi script ebben segít. Értelemszerűen a mentés utvonalát mindenki maga állítsa át:
USE [master];
GO
DECLARE @dbname sysname;
DECLARE @backupFolder varchar(255) = 'F:\Backups\';
DECLARE @stmt nvarchar(max);
DECLARE CUR CURSOR FOR
SELECT
[name]
FROM
sys.databases
WHERE
[database_id] <> 2
OPEN CUR;
FETCH NEXT FROM CUR INTO @dbname;
WHILE @@FETCH_STATUS = 0
BEGIN
SET @stmt = 'BACKUP DATABASE ' + @dbname
+ ' TO DISK=N''' + @backupFolder
+ REPLACE(@@SERVERNAME, '\', '_') + '_'
+ @dbname + '.bak'' WITH COMPRESSION, INIT, STATS';
PRINT @stmt;
EXEC(@stmt);
FETCH NEXT FROM CUR INTO @dbname;
END
CLOSE CUR;
DEALLOCATE CUR;