SQL Server 批量完整備份 實(shí)現(xiàn)方式一:使用游標(biāo)
2016-09-06 18:06:48
26335
SQL Server 批量完整備份 實(shí)現(xiàn)方式一:使用游標(biāo)
執(zhí)行下面的SQL腳本就可以備份當(dāng)前數(shù)據(jù)庫實(shí)例的所有數(shù)據(jù)庫(除了系統(tǒng)數(shù)據(jù)庫);
-- =============================================
-- Create date: <2015/12/03>
-- Description: <批量備份數(shù)據(jù)庫>
-- =============================================
DECLARE
@FileNameVARchar(200),
@CurrentTimeVARchar(50),
@DBNameVARchar(100),
@SQL VARchar(1000)
SET @CurrentTime = CONVERT(char(8),GETDATE(),112) + CAST(DATEPART(hh, GETDATE()) AS VARCHAR) + CAST(DATEPART(mi, GETDATE()) AS VARCHAR)
DECLARE CurDBName CURSOR FOR
select NAME from Master..SysDatabases where dbid>4
OPEN CurDBName
FETCH NEXT FROM CurDBName INTO @DBName
WHILE @@FETCH_STATUS = 0
BEGIN
--Execute Backup
SET @FileName = 'E:DBBackup' + @DBName + '_' + @CurrentTime
SET @SQL = 'BACKUP DATABASE ['+ @DBName +'] TO DISK = ''' + @FileName + '.bak' +
''' WITH NOINIT, NOUNLOAD, NAME = N''' + @DBName + '_backup'', NOSKIP, STATS = 10, NOFORMAT'
EXEC(@SQL)
--Get Next DataBase
FETCH NEXT FROM CurDBName INTO @DBName
END
CLOSE CurDBName
DEALLOCATE CurDBName
執(zhí)行完上面的SQL腳本,會(huì)在E:DBBackup的目錄下生成似下圖的備份文件:
