2012-05-21 160 views
12

我已經嘗試爲我的一個非常小的SQL Server Express 2008數據庫編寫備份腳本。 我的要求是每晚進行一次完整備份,保留最後五次備份。這是我寫作的一個嘗試,想獲得關於我是否做得對的反饋? 感謝您的協助。SQL服務器備份腳本

declare @backupfilename nvarchar(100) 
    set @backupfilename='c:\...location..\filename_'+convert(varchar(10),getdate(),112) + '.bak' 

    BACKUP DATABASE [dbname] TO DISK = @backupfilename 
    WITH RETAINDAYS = 5, NOFORMAT, NOINIT, NAME = N'Full Database Backup Name', NOSKIP, 
    NOREWIND, NOUNLOAD, STATS = 10 
    GO 
    declare @backupSetId as int 
    select @backupSetId = position from msdb..backupset where database_name=N'dbname' 
    and backup_set_id=(select max (backup_set_id) from msdb..backupset where 
    database_name=N'dbname') 
    if @backupSetId is null begin raiserror(N'Verify failed. Backup information for database 
    ''dbname'' not found.', 16, 1) end 
    RESTORE VERIFYONLY FROM DISK [email protected] WITH FILE = @backupSetId, NOUNLOAD, NOREWIND 
    GO 

回答

19

我強烈推薦Ola's backup stored procedures。他們得到很好的支持並且非常堅實。如果你不習慣使用它們,你至少可以在編寫自己的例程時看到它們。

+0

這是一個高度重視的鏈接,被許多...加上一個行業標準。 – RThomas

+0

感謝您指向這個網站..這有很多的信息,我想我應該能夠根據我的要求自定義databasebackup.sql文件... – cableload