我尝试为我的一个非常小的 SQL Server Express 2008 数据库编写备份脚本。 我的要求是每天晚上做一次完整备份,保留最后五个备份。这是我写一篇的尝试,想得到关于我做得是否正确的反馈? 感谢您的帮助。
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 =@backupfilename WITH FILE = @backupSetId, NOUNLOAD, NOREWIND
GO
最佳答案
我强烈推荐Ola's backup stored procedures 。它们得到很好的支持并且非常坚固。如果您觉得使用它们不舒服,您至少可以在编写自己的例程时引用它们。
关于sql-server - SQL Server备份脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10688274/