Sql Server’daki Tüm Database’lerin YedeÄŸini Store Procedure ile Alın
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | IF EXISTS (SELECT NAME FROM sysobjects WHERE NAME = 'BackupAllDBs' AND type = 'P') DROP PROCEDURE BackupAllDBs GO CREATE PROCEDURE BackupAllDBs @backup_location VARCHAR(256) AS BEGIN DECLARE @DBName VARCHAR(30) DECLARE @BackupFileName VARCHAR(256) IF @backup_location IS NULL OR LEN(RTRIM(@backup_location)) = 0 SET @backup_location = 'C:/' DECLARE DBBackup_Cursor CURSOR FOR SELECT NAME FROM master.dbo.sysdatabases WHERE NAME NOT IN ('master','model','msdb','tempdb') OPEN DBBackup_Cursor FETCH NEXT FROM DBBackup_Cursor INTO @DBName WHILE @@FETCH_STATUS = 0 BEGIN SET @BackupFileName = @backup_location + @DBName + '_' + CONVERT(VARCHAR(20),GETDATE(),112) + '.BAK' BACKUP DATABASE @DBName TO DISK = @BackupFileName FETCH NEXT FROM DBBackup_Cursor INTO @DBName END CLOSE DBBackup_Cursor DEALLOCATE DBBackup_Cursor END GO |
Yukarıkaki Kod Blogu Sedat Salman Hocamız tarafından paylaşılmış.Bende gördüm Paylaşayım Dedim.Şimdi Ben Buradaki Olayın devamlılığını biraz daha açıklayayım..
Sql Server’a BaÄŸlanın ve New Query diyerek yukarıdaki sorguyu yazın amma öncelikle USE [DatabaseAdı] nı kullanınki O database’in altına atasın bu store Procedure’yi..
Daha sonra yapacağınız iÅŸ Yeni bir Job hazırlamak ve Job kısmında T-Sql kısmına execdbo.BackupAllDBs ‘C:\’ ÅŸeklinde bir parametre ile kullanın ve zamanlandırın bu iÅŸlemi..
İyi Çalışmalar..
Teşekkürler Sedat Hocam