sql-server - SQL Server备份脚本

标签 sql-server sql-server-2008

我尝试为我的一个非常小的 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/

相关文章:

sql-server - SQL Server : Lead/Lag analytic function across groups (and not within groups)

sql - 使用动态sql创建表

sql-server - 如何使用 mssql 模块通过 Node.JS 的 Windows 身份验证连接到 SQL Server

sql-server-2008 - 如何避免只有一个参数不同的同一查询的重复?

visual-studio-2010 - 使用 SQL Server Management Studio 打开驻留在 App_Data 中的 mdf 文件?

sql-server - 将包从 2008 升级到 2012 后出现 SSIS 脚本任务错误

c# - SQL Server CE 或 Access for a portable database with c#?

c# - 按图像路径在数据库中的 RDLC 报告上显示图像

SQL - 删除重复行但保留空行

c# - 将 C# 字符串作为 SELECT WHERE IN 的 SQL 参数传递