Este es un script que realiza una copia de seguridad de todas las bases de datos (excepto las bases de datos de sistema) de un servidor SQL Server.
Los archivos se guardan en formato NameOfDatabase_YYYYMMDDHHMMSS.bak, donde:
NameOfDatabase = nombre de la base de datos
YYYY = aƱo en formato de 4 digitos
MM = mes
DD = dĆa
HH = hora
MM = minutos
SS = segundos.
-Name of database DECLARE @DatabaseName VARCHAR(50) -Path of backup folder DECLARE @BackupPath VARCHAR(256) -Name of backup file DECLARE @BackUpFileName VARCHAR(256) -Get current date used for suffixing with file name DECLARE @Date VARCHAR(20) -Specify path for database backup directory. -Make sure directory exists before executing script, else script will give error SET @BackupPath = ‘C:\Backup\’ -Get current date used for suffixing with file name SELECT @Date = CONVERT(VARCHAR(20),GETDATE(),112) + REPLACE(CONVERT(VARCHAR(20),GETDATE(),108),‘:’,”) -Declaring cursor for storing database names DECLARE db_cursor CURSOR FOR SELECT name FROM master.dbo.sysdatabases -Excluding system databases WHERE name NOT IN (‘master’,‘model’,‘msdb’,‘tempdb’) -For specific database, replace TestDB with -required database name in the below line and uncomment it: AND name IN (‘TestDB’) -Fetching database names from cursor to local variable OPEN db_cursor FETCH NEXT FROM db_cursor INTO @DatabaseName -Loop for all databases WHILE @@FETCH_STATUS = 0 BEGIN -Setting file name in format NameOfDatabase_YYYYMMDDHHMMSS SET @BackUpFileName = @BackupPath + @DatabaseName + ‘_’ + @Date + ‘.bak’ -Creating back up BACKUP DATABASE @DatabaseName TO DISK = @BackUpFileName -Fetching next database name FETCH NEXT FROM db_cursor INTO @DatabaseName END -Close and deallocate cursor CLOSE db_cursor DEALLOCATE db_cursor
0 Comentarios