SQL Server İnstance All Database Backup
SQL Server İnstance All Database Backup,
Taşıma işlemi ya da farklı işlemler yapılacağında birden fazla veritabanın yedeğini almak gerekebiliyor.
Hepsinin tek tek yedeğini almak yerine aşağıdaki script yardımı ile instance içerisinde bulunan veritabanlarının hepsinin yedeğini aynı dizine alabiliriz.
DECLARE @name VARCHAR(50) -- veritabanı_adi
DECLARE @path VARCHAR(256) -- backup alınacak path
DECLARE @fileName VARCHAR(256) -- path ve isim
DECLARE @fileDate VARCHAR(20) -- pathe eklenecek o günün tarihi
-- SET @path = 'C:\backup\' bu şekilde yazmanız gerekmektedir.
-- or SET @path = '\\sqlbackup\' if you using remote drives
-- backup alacağınız path de sql servisinin yetkisi var mı kontrol edin
SET @path = '\\C:\backup\deneme\'
SELECT @fileDate = CONVERT(VARCHAR(20),GETDATE(),112)
DECLARE db_cursor CURSOR FOR
SELECT name
FROM master.dbo.sysdatabases
WHERE name NOT IN ('master','model','msdb','tempdb')
OPEN db_cursor
FETCH NEXT FROM db_cursor INTO @name
WHILE @@FETCH_STATUS = 0
BEGIN
SET @fileName = @path + @name + '_' + @fileDate + '.BAK'
BACKUP DATABASE @name TO DISK = @fileName WITH COMPRESSION,stats=1
FETCH NEXT FROM db_cursor INTO @name
END
CLOSE db_cursor
DEALLOCATE db_cursor