高级会员
- 积分
- 854
- 金钱
- 716
- 贡献
- 61
- 注册时间
- 2024-9-13
|
楼主 |
发表于 2025-1-18 17:04:14
|
显示全部楼层
第二步------------------首先需要SQL代理需要运行状态,在执行下面使用SQL作业计划每分钟运行一次-----------------------
" j5 I& a& \, z2 bUSE msdb;
) [9 D7 F7 G- z( `; P. hGO+ b1 J7 t) u' a! ^& H
+ B# q X" i. A# H0 l-- 如果作业已存在,则先删除它
{ f/ x+ f! k# U9 h: OIF EXISTS (SELECT job_id FROM msdb.dbo.sysjobs WHERE name = N'IncreaseUserCashJob')
# [0 {5 _2 ~$ m, a. k EXEC sp_delete_job @job_name = N'IncreaseUserCashJob';
9 x m- u- h- t/ m0 q: c, {( ZGO
- R, h( g" E' z% e- g& R
- H8 I: V6 B' Z0 H: z; s-- 创建新的作业
% B4 w+ [+ V/ @ [5 bEXEC sp_add_job
/ h/ o2 X/ `- g0 \ @job_name = N'IncreaseUserCashJob', -- 作业名称
; {1 f$ }0 b |9 `8 O @enabled = 1, -- 启用作业
" m6 I6 c- y) Z9 ^ @notify_level_eventlog = 0, -- 不在事件日志中记录作业状态更改6 F4 Z( q$ o& z8 a. G- I U D2 T
@notify_level_email = 0, -- 不发送电子邮件通知 A0 E- ?! V9 ]2 t. x
@notify_level_netsend = 0, -- 不发送网络消息通知
+ ^* _8 ^: b; } E @notify_level_page = 0, -- 不发送寻呼通知
0 X% b0 f2 _5 g @delete_level = 0, -- 不自动删除作业
: u! D1 z% g( ~/ \0 Y. l @description = N'This job increases user cash by 1 for all online users every minute.', -- 作业描述3 u6 K' @ T: ?
@category_name = N'[Uncategorized (Local)]', -- 作业类别6 a- | Z: Q- V7 p. {( y1 J. \/ A
@owner_login_name = N'YourLoginName', -- 作业所有者(请替换为实际的登录名)
5 O8 k6 P8 }) g2 j! ^ @notify_email_operator_name = N''; -- 不指定电子邮件通知操作员
; t3 U8 ?% V, Q3 R" d" oGO
& U: ?( n0 w1 p1 ~8 u; A% f' {; d. w
-- 为作业添加一个步骤. g9 O8 K) c& u/ M6 G) {6 }0 T7 q$ }
EXEC sp_add_jobstep 6 q" y. L9 G8 X5 O
@job_name = N'IncreaseUserCashJob', -- 作业名称3 Z1 W& D6 S# U: b
@step_name = N'ExecuteStoredProcedure', -- 步骤名称
- I. y- ?1 l$ R7 a' X( Z z @subsystem = N'TSQL', -- 指定步骤使用的子系统(这里是Transact-SQL). O8 ~! R9 B. B# Q, ]* K
@database_name = N'account', -- 指定数据库名称
; c8 q l& r7 k7 W, [( K1 d @command = N'EXEC dbo.IncreaseUserCashByOnlineDuration;', -- 要执行的命令(存储过程)4 T& a+ }* c3 i5 f: ]
@retry_attempts = 5, -- 重试次数
8 c N1 \) p, t L% Q @retry_interval = 5; -- 重试间隔(分钟)
) C3 @ s+ U/ }7 |& dGO
4 {4 t! C' u3 u1 G3 D
+ z6 D2 k' _! Z2 z; r& [-- 为作业添加一个每分钟执行一次的调度
! k0 x2 l: A$ `& hEXEC sp_add_schedule : D. b2 n( \ y y& R( I
@schedule_name = N'MinuteSchedule', -- 调度名称& G/ t* N" L( |
@freq_type = 4, -- 频率类型(4表示每日)% y1 ^- w& ^/ ^; W4 i" b" Y
@freq_interval = 1, -- 对于每日频率,这里设置为1表示每天都执行! q! g- D* F7 Z
@freq_subday_type = 4, -- 子日频率类型(4表示分钟)( Z4 \+ j% y& w3 W! b$ N9 |% _
@freq_subday_interval = 1, -- 子日频率间隔(每分钟执行一次)- Z: w% M: M% e8 W$ P9 d N
@active_start_date = 20250118, -- 活动开始日期(格式YYYYMMDD)
. A% F6 r2 I0 s0 P0 k5 k: X @active_start_time = 0, -- 活动开始时间(以24小时制表示,0表示午夜)
, f( |, k: |8 f$ n8 w! B0 @- o @active_end_date = 99991231, -- 活动结束日期(通常设置为一个遥远的未来日期)0 ^6 a/ u% T, n6 o# g* A
@active_end_time = 235959; -- 活动结束时间(以24小时制表示,235959表示一天的最后一分钟)- p+ `# x7 Y+ {/ s& w) {
GO
3 ]( W' D: j$ ~" W! ?: W6 J7 u' P0 J2 r1 ?# F
-- 将作业与调度关联起来5 E0 `( g/ c& W) i% v8 L
EXEC sp_attach_schedule $ ^/ u1 X7 g) G* ?9 w3 r, b! h8 G
@job_name = N'IncreaseUserCashJob', -- 作业名称2 d" S& Q- f# S3 p# E i! m, ]
@schedule_name = N'MinuteSchedule'; -- 调度名称
" w( n- }" ^) k& R# EGO
: O' G: }% X( \& b3 b! F+ r+ N$ [. W
/ P! k5 Z: u+ n/ E! G0 `1 I-- 提交作业创建到SQL Server Agent" X1 t& B8 _5 M, E6 X- n% X$ }/ Z
EXEC sp_add_jobserver " {* M9 Y( l/ P" C1 Q
@job_name = N'IncreaseUserCashJob', -- 作业名称: ~- s% Z0 S+ N9 [
@server_name = N'(LOCAL)'; -- 服务器名称(对于本地服务器使用'(LOCAL)')" T: `5 z% q5 _7 A& S) ?
GO1 u" c8 w5 a# D' U! S0 x! M- N
- H# t. T+ D; }* d* ?0 z
: L( V% h8 L3 Y- R. a1 C$ L* f E: ^
0 C3 H( N5 w- N/ _' J7 }! x; { |; ?* l' B3 \' N1 m: f
|
|