创建备份MYDB的备份脚本,并删除5天前备份

USE msdb ;
GO
EXEC dbo.sp_add_job
    @job_name = 'Job_backup_DB',  --作业的名称
    @enabled = 1, --指示添加的作业的状态(默认值为(启用))
    @description = '数据库定期备份作业!', --作业的说明
    @owner_login_name = 'sa', --拥有作业的登录名
    @notify_level_eventlog = 2, --0 从不成功后(默认值)失败后始终
    @notify_level_email = 2, --默认值为,指示从不发送
    @notify_level_netsend = 2, --默认值为,指示从不发送
    @notify_level_page = 2, --默认值为,指示从不发送
    @category_id=3,    --作业的类别ID
    @delete_level = 0 ; --默认值为,不删除,用于指示何时删除作业
GO

USE msdb ;
GO
EXEC sp_add_jobstep
    @job_name = 'Job_backup_DB', --步骤的作业的名称
    @step_name = 'Job_backup_DB_step', --步骤的名称
    @server=@@servername,--服务器名称
    @database_name='master',--数据库名
    @subsystem = 'TSQL', --Transact-SQL 语句\制表符--CHAR(9) 换行符CHAR(10) 回车CHAR(13) 
    @command ='/*****完全备份******/
DECLARE @Path_MYDB Nvarchar(2000),@Path_MYDB_log Nvarchar(2000)
DECLARE @olddate datetime
Set @Path_MYDB =''D:\DataBak\MYDB''+CONVERT(NVARCHAR(10),getdate(),112)+''.bak''
Set @Path_MYDB_log =''D:\DataBak\MYDB_log''+CONVERT(NVARCHAR(10),getdate(),112)+''.bak''
--PRINT @bak_name
USE master
Backup Database [MYDB] to disk=@Path_MYDB;
Backup Log [MYDB] to disk=@@Path_MYDB_log
Use [MYDB]
DBCC SHRINKFILE (N''MYDB_log'' , 0, TRUNCATEONLY);
select @olddate=getdate()-5
execute master.dbo.xp_delete_file 0,N''D:\DataBak\'',N''bak'',@olddate', --添加要执行的SQL
    @retry_attempts = 2,--该步骤失败时的重试次数
    @retry_interval = 0.05 ; --两次重试之间的间隔时间(分钟)
GO
USE msdb ;    
GO
EXEC sp_add_schedule
    @schedule_name = 'Job_backup_DB_plan' ,--计划的名称
    @freq_type = 4 , --指示作业执行时间的值为一次,为每天(,8,16,32等参考帮助文档)值为的次方
    @freq_interval = 1,--作业执行的天数说明同上
    @active_start_time = 010000 ;--数据类型为int,默认值为,指示小时制的上午:00:00,并且必须使用HHMMSS 的格式输入
GO
EXEC sp_attach_schedule
   @job_name = 'Job_backup_DB', --计划的作业的名称
   @schedule_name = 'Job_backup_DB_plan' ; --作业设置的计划的名称
GO

USE msdb ;
GO
EXEC dbo.sp_add_jobserver
    @job_name = 'Job_backup_DB', --作业的名称
    @server_name = @@servername ; --该作业的目标服务器的名称
GO