2012-05-21 115 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