Hogyan készítsünk gyorsan full mentést az összes adatbázisról

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;

Add comment