The blog

Backup MS SQL Databases

Ενα πολύ χρήσιμο sql script για να κάνετε backup όλες τις βάσεις δεδομένων που έχετε σε ένα SQL Server.

 

				
					USE master;

DECLARE @DatabaseName NVARCHAR(128)
DECLARE @BackupDirectory NVARCHAR(256)
DECLARE @BackupName NVARCHAR(256)
DECLARE @BackupCommand NVARCHAR(4000)
DECLARE @CurrentDateTime NVARCHAR(20)

-- Set the backup directory where the backup files will be stored
-- Αλλάξτε το στο επιθυμητό directory
SET @BackupDirectory = `C:\Backup\`

-- H τρέχουσα ώρα σε μορφή yyyyMMddHHmmss
SET @CurrentDateTime = REPLACE(CONVERT(NVARCHAR(20), GETDATE(), 120), ':', '')

-- Χρήση cursor για το Loop
DECLARE db_cursor CURSOR FOR
SELECT name
FROM sys.databases
WHERE database_id > 4 -- Εξαίρεση των system databases (master, model, msdb, tempdb)

OPEN db_cursor

FETCH NEXT FROM db_cursor INTO @DatabaseName

WHILE @@FETCH_STATUS = 0
BEGIN
    -- Generate the backup file name - Δημιουργία ονόματος αρχείου
    SET @BackupName = @BackupDirectory + @DatabaseName + '_' + @CurrentDateTime + '.bak'

    -- Build the backup command 
    SET @BackupCommand = 'BACKUP DATABASE ' + QUOTENAME(@DatabaseName) + ' TO DISK = ''' + @BackupName + ''' WITH INIT'

    -- Execute the backup command
    EXEC sp_executesql @BackupCommand

    FETCH NEXT FROM db_cursor INTO @DatabaseName
END

CLOSE db_cursor
DEALLOCATE db_cursor