-=============================================
-著者:<广州_ 小海>
-ブログ: [email protected]
作成日:<2015/09/08>
-説明:<批量备份数据库>
-============ =================================
DECLARE
@FileName VARCHAR(200)、
@ CurrentTime VARCHAR(50)、
@ DBName VARCHAR(100)、
@ SQL VARCHAR(1000)
SET @CurrentTime = convert(varchar、getdate()、112)
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バックアップを
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
go
-============================================ ==
-説明:<批量删除昨天备份データデータ库>
-========================= ====================
DECLARE
@FileName VARCHAR(200)、
@ CurrentTime VARCHAR(50)、
@ DBName VARCHAR(100)、 @
SQL VARCHAR(1000)
SET @ CurrentTime = convert(varchar、dateadd(day、-1、getdate())、112)--
SET @ CurrentTime = convert(varchar、getdate()、112)
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 + '.bak 」
set @ SQL = 'del' + @ FileName + '/ F'
exec master..xp_cmdshell @SQL
print @SQL
--Get Next DataBase
FETCH NEXT FROM CurDBName INTO @DBName
END
CLOSE CurDBName
DEALLOCATE CurDBName
2つの部分のSQLスクリプトgo前の部分は毎日のデータをバックアップします。次の部分は、昨日のバックアップデータを削除することです。
新しいジョブを作成すると、SQLスクリプトが
-著者:<广州_ 小海>
-ブログ: [email protected]
作成日:<2015/09/08>
-説明:<批量备份数据库>
-============ =================================
DECLARE
@FileName VARCHAR(200)、
@ CurrentTime VARCHAR(50)、
@ DBName VARCHAR(100)、
@ SQL VARCHAR(1000)
SET @CurrentTime = convert(varchar、getdate()、112)
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バックアップを
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
go
-============================================ ==
-作成者:<Guangzhou_Xiaohai>
-ブログ:
[email protected]
-作成日:<2015/09/08>
-説明:<批量删除昨天备份データデータ库>
-========================= ====================
DECLARE
@FileName VARCHAR(200)、
@ CurrentTime VARCHAR(50)、
@ DBName VARCHAR(100)、 @
SQL VARCHAR(1000)
SET @ CurrentTime = convert(varchar、dateadd(day、-1、getdate())、112)--
SET @ CurrentTime = convert(varchar、getdate()、112)
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 + '.bak 」
set @ SQL = 'del' + @ FileName + '/ F'
exec master..xp_cmdshell @SQL
print @SQL
--Get Next DataBase
FETCH NEXT FROM CurDBName INTO @DBName
END
CLOSE CurDBName
DEALLOCATE CurDBName
2つの部分のSQLスクリプトgo前の部分は毎日のデータをバックアップします。次の部分は、昨日のバックアップデータを削除することです。
新しいジョブを作成すると、SQLスクリプトが