2
一意の名前形式の日次バックアップスクリプトを作成する方法:Demo_YYYYMMDD_XX ここで、XXはバックアップ履歴に基づく増分数値です。形式:Demo_YYYYMMDD_XX.bakでSQL DBバックアップスクリプトを書き込む方法
例は次のとおりです。
- 第一バックアップ:Demo_20170704_01.bak
- 第二のバックアップ:Demo_20170704_02.bak
- 第三バックアップ:Demo_20170704_03.bak
XXが+1にバックアッププロセスが上で実行されるたびに増加します同じ日と同じフォルダ(パス)。
下のスクリプトで管理することができました。どんな改善が必要ですか?ありがとう
DECLARE @path VARCHAR(500)
DECLARE @name VARCHAR(500)
DECLARE @pathwithname VARCHAR(500)
DECLARE @time DATETIME
DECLARE @year VARCHAR(4)
DECLARE @month VARCHAR(2)
DECLARE @day VARCHAR(2)
DECLARE @counter varchar(10)
SET @path = 'C:\Backup Path\'
SELECT @time = GETDATE()
SELECT @year = (SELECT CONVERT(VARCHAR(4), DATEPART(yy, @time)))
SELECT @month = (SELECT CONVERT(VARCHAR(2), FORMAT(DATEPART(mm,@time),'00')))
SELECT @day = (SELECT CONVERT(VARCHAR(2), FORMAT(DATEPART(dd,@time),'00')))
SELECT @counter = (
select format(count(A.database_name),'000')
from msdb.dbo.backupset A join msdb.dbo.backupmediafamily B
on A.media_set_id = B.media_set_id
where A.database_name = 'Demo'
and (select convert(date,A.backup_start_date, 120)) = (select convert(date,getdate(), 120))
)
SELECT @name ='Demo' + '_' + @year + @month + @day + '_' + @counter
SET @pathwithname = @path + @name + '.bak'
BACKUP DATABASE Demo
TO DISK = @pathwithname WITH NOFORMAT, NOINIT, SKIP, REWIND, NOUNLOAD, STATS = 10