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