全DBのバックアップをするSQL文 | Rock Around The Clock - 24時間とおしで、前後にゆれてください

Rock Around The Clock - 24時間とおしで、前後にゆれてください

Rock について語る!?(予定)
と、プログラミングもやっぱりねっ!

sysdatabases の中から、'm' or 't' ot 'R' で 始まるもの以外のDBを全部バックアップするためにちょっと作っただけ~

m => master をはじきたかったw

t => tempdb とか test とかをはじっく

R => Reporting Services 関係をはじっく

まぁこんなクエリー晒すまでもないかもしれないけど・・・

たまにQAとかで見かけるし・・・.

なんとなく、カーソルとこがダッサイ気もしないでもないけど・・・

日付とかも自動でつけちゃうよ~っと。

declare namecursor CURSOR FOR
select name from master.dbo.sysdatabases
where name not like 'm%' and name not like 't%' and name not like 'R%';

OPEN namecursor;

declare @dbname nvarchar(255);
declare @datestring nvarchar(255);
declare @backupfilename nvarchar(512);
declare @backupdir nvarchar(255);
declare @medianame nvarchar(255);
declare @remarks nvarchar(255);

set @backupdir ='d:\temp\'
set @datestring = FORMAT(getdate(),'yyyyMMdd')


WHILE @@FETCH_STATUS = 0
BEGIN

FETCH NEXT FROM namecursor INTO @dbname;

set @backupfilename=@backupdir + @dbname + '_' + @datestring + '.bak';
set @medianame = @dbname + '-' + @datestring ;
set @remarks = 'Full Backup of ' + @dbname + ' ' + @datestring ;

BACKUP DATABASE @dbname TO DISK = @backupfilename
WITH FORMAT,MEDIANAME = @medianame,NAME = @remarks;

END;

CLOSE namecursor;
DEALLOCATE namecursor;

GO