当前位置: 代码迷 >> Sql Server >> 重复执行的作业,时间按第一次执行的时间吗?是什么?解决思路
  详细解决方案

重复执行的作业,时间按第一次执行的时间吗?是什么?解决思路

热度:495   发布时间:2016-04-27 16:07:16.0
重复执行的作业,时间按第一次执行的时间吗?是什么?
我做了个定时备份的作业,每天17:05-17:10每分钟执行一次
希望备份的文件名是TeachingBackUp2007年8月28日17时7分.bak的形式作业是执行了,
我希望每次生成新的备份文件
但是却只有一个备份文件:TeachingBackUp2007年8月28日17时1分.bak但修改时间是每分钟修改一次,且每次bak文件的大小都在翻倍...
应该是没生成新的文件名的原因吧..

1.那为什么没生成新的文件名呢?

2.文件名为什么是17时1分???

生成文件名的相关代码:
  --   添加作业步骤
declare   @FileNam   varchar(200)
declare   @sCmd   nvarchar(1000)
set   @FileNam= 'd:\TeachingBackUp '
  +   LTRIM(STR(YEAR(GETDATE())))   +   '年 '   +   LTRIM(STR(MONTH(GETDATE())))   +   '月 '
  +   LTRIM(STR(DAY(GETDATE())))+ '日 '+LTRIM(STR(datepart(hh,GETDATE())))+ '时 '+LTRIM(STR(datepart(minute,GETDATE())))   + '分.bak '  
set   @sCmd=N 'backup   database   teaching   to   disk= ' ' '[email protected]+ ' ' ' '
--select   @sCmd
    EXECUTE   @ReturnCode   =   msdb.dbo.sp_add_jobstep   @job_id   =   @JobID,   @step_id   =   1,   @step_name   =   N '备份 ',
  @command   =   @sCmd,
  @database_name   =   N 'TEACHING ',   @server   =   N ' ',   @database_user_name   =   N ' ',  

@subsystem   =   N 'TSQL ',   @cmdexec_success_code   =   0,   @flags   =   0,   @retry_attempts   =   0,   @retry_interval   =   1,   @output_file_name   =  

N ' ',   @on_success_step_id   =   0,   @on_success_action   =   1,   @on_fail_step_id   =   0,   @on_fail_action   =   2


------解决方案--------------------
最好的办法市做维护计划
生成的代码如下:

EXECUTE master.dbo.xp_sqlmaint N '-PlanID EBBCD054-ECA0-4531-930F-B4A8C76A4AA2 -WriteHistory -VrfyBackup -BkUpMedia DISK -BkUpDB "D:\EtcomDB " -BkExt "BAK " '

后面加个调度就OK
  相关解决方案