SQL SERVER数据库的作业的脚本及存储过程
<div class="jb51code"> CREATE PROCEDURE [cg_DoBackupJob] AS select @filePath=@FolderPath + @FileHead + '' + case @isFullBackup when 1 then 'FullBackup' when 0 then 'DifferBackup' end + '' + convert ( nvarchar(11),getdate(),112 )
select @sql ='BACKUP DATABASE [' + @DataBaseName + '] TO DISK = '''
execute(@sql) -- ============================================= 用系统存储过程去创建作业,代码如下: -- 删除同名的警报(如果有的话)。 SELECT @JobID = job_id FROM msdb.dbo.sysjobs WHERE (name = N'access911_每2周备份一次') IF (@JobID IS NOT NULL) BEGIN -- 检查此作业是否为多重服务器作业 IF (EXISTS (SELECT * FROM msdb.dbo.sysjobservers WHERE (job_id = @JobID) AND (server_id <> 0))) BEGIN -- 已经存在,因而终止脚本 RAISERROR (N'无法导入作业“access911_每2周备份一次”,因为已经有相同名称的多重服务器作业。',16,1) GOTO QuitWithRollback END ELSE -- 删除[本地]作业 EXECUTE msdb.dbo.sp_delete_job @job_name = N'access911_每2周备份一次' SELECT @JobID = NULL END BEGIN -- 添加作业 -- 添加作业步骤 IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback -- 添加作业调度 -- 添加目标服务器 END Transact-SQL 参考 语法sp_add_jobschedule [ @job_id = ] job_id,| [ @job_name = ] 'job_name',[ @name = ] 'name' [,[ @enabled = ] enabled ] [,[ @freq_type = ] freq_type ] [,[ @freq_interval = ] freq_interval ] [,[ @freq_subday_type = ] freq_subday_type ] [,[ @freq_subday_interval = ] freq_subday_interval ] [,[ @freq_relative_interval = ] freq_relative_interval ] [,[ @freq_recurrence_factor = ] freq_recurrence_factor ] [,[ @active_start_date = ] active_start_date ] [,[ @active_end_date = ] active_end_date ] [,[ @active_start_time = ] active_start_time ] [,[ @active_end_time = ] active_end_time ] 参数 将向其中添加调度的作业的作业标识号。job_id 的数据类型为 uniqueidentifier,默认设置为 NULL。 [ @job_name = ] 'job_name' 作业的名称,调度即添加到该作业中。job_name 的数据类型为 sysname,默认设置为 NULL。 说明 必须指定 job_id 或 job_name,但不能两个都指定。 [ @name = ] 'name' 调度的名称。name 的数据类型为 sysname,没有默认设置。 [ @enabled = ] enabled 指明调度的当前状态。enabled 的数据类型为 tinyint,默认设置为 1(启用)。如果为 0,则不启用调度。禁用该调度时,不运行作业。 [ @freq_type = ] freq_type 用于指明何时将执行作业的值。freq_type 的数据类型为 int,默认设置为 0,可以是下列值之一。 值 描述 [ @freq_interval = ] freq_interval 作业执行的天数。freq_interval 的数据类型为 int,默认设置为 0,依赖于 freq_type 的值。 freq_type 的值 对 freq_interval 的影响 16(每月) 每月的 freq_interval 日。 64(当 SQLServerAgent 服务启动时) 未使用 freq_interval。 [ @freq_subday_type = ] freq_subday_type 指定 freq_subday_interval 的单位。freq_subday_type 为 int 类型,其默认值为 0,且可以取下列值之一。 值 描述(单位) [ @freq_subday_interval = ] freq_subday_interval 作业每次执行之间要出现的 freq_subday_type 周期数。freq_subday_interval 的数据类型为 int,默认设置为 0。 [ @freq_relative_interval = ] freq_relative_interval 如果 freq_interval 是 32(每月相对),则为每月中已调度作业的 freq_interval 的发生情况。freq_relative_interval 的数据类型为 int,默认设置为 0,可以是下列值之一。 值 描述(单位) [ @freq_recurrence_factor = ] freq_recurrence_factor 作业的已调度执行之间的周数或月数。只有当 freq_type 是 8、16 或 32 时,才使用 freq_recurrence_factor。freq_recurrence_factor 的数据类型为 int,默认设置为 0。 [ @active_start_date = ] active_start_date 作业可开始执行的日期。active_start_date 的数据类型为 int,默认设置为 NULL,该值表示当天的日期。日期的格式为 YYYYMMDD。如果 active_start_date 不为 NULL,则日期必须大于或等于 19900101。 [ @active_end_date = ] active_end_date 作业可停止执行的日期。active_end_date 的数据类型为 int,默认设置为 99991231,该值表示 9999 年 12 月 31 日。格式为 YYYYMMDD。 [ @active_start_time = ] active_start_time (编辑:4S站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |