永不落伍 发表于 2018-10-22 07:24:13

创建作业的SQL

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 to disk=@Path_MYDB;
  
Backup Log to disk=@@Path_MYDB_log
  
Use
  
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


页: [1]
查看完整版本: 创建作业的SQL