高级会员
- 积分
- 870
- 金钱
- 730
- 贡献
- 63
- 注册时间
- 2024-9-13
|
楼主 |
发表于 2025-1-18 17:04:14
|
显示全部楼层
第二步------------------首先需要SQL代理需要运行状态,在执行下面使用SQL作业计划每分钟运行一次-----------------------
' W. U( Z: b+ l% o( N% E) kUSE msdb;
8 l$ _; r) n/ LGO* |, v; j O- v
+ n/ `) n0 Z6 w2 u6 b# i! F
-- 如果作业已存在,则先删除它
P. U- s! g$ j, C" GIF EXISTS (SELECT job_id FROM msdb.dbo.sysjobs WHERE name = N'IncreaseUserCashJob')5 S( y; {& E2 s8 @0 Z
EXEC sp_delete_job @job_name = N'IncreaseUserCashJob';
, [/ {- i; k5 x+ o# CGO1 n4 }7 F" w; i8 W* {( b Q* E9 i+ G
6 H9 V! K5 g. ?# ~+ ]-- 创建新的作业
* d* a8 ?. g+ k0 g, a* cEXEC sp_add_job ; Q, B( ]0 O6 ~) n7 @) ?
@job_name = N'IncreaseUserCashJob', -- 作业名称: F6 s/ M8 H& A7 ^! a
@enabled = 1, -- 启用作业
# ^8 ]7 i% J, S2 ~ @notify_level_eventlog = 0, -- 不在事件日志中记录作业状态更改
* W3 F' x- R& q8 e" O @notify_level_email = 0, -- 不发送电子邮件通知
7 U3 X. Z( y& ]# Z @notify_level_netsend = 0, -- 不发送网络消息通知5 G) X7 r3 Z* B" d6 F+ s% H
@notify_level_page = 0, -- 不发送寻呼通知
7 P+ H, w+ u5 V8 \ @delete_level = 0, -- 不自动删除作业
& N& z' f) z# G/ Z) g' W! k1 [ @description = N'This job increases user cash by 1 for all online users every minute.', -- 作业描述4 w- l( Q/ K; q+ e' d# }% ^
@category_name = N'[Uncategorized (Local)]', -- 作业类别
- W: q: P# K3 o1 U' b1 c/ F @owner_login_name = N'YourLoginName', -- 作业所有者(请替换为实际的登录名)& `' T6 Z( k" S3 ^
@notify_email_operator_name = N''; -- 不指定电子邮件通知操作员
- M U0 G) E7 ~2 [! k7 l1 q8 l% iGO9 ^) G# u6 C% {2 k, s* o1 b
5 G1 x- ?* n; X, _6 B+ {
-- 为作业添加一个步骤4 [) I: ?5 H# _6 p+ {
EXEC sp_add_jobstep ! F: c/ r8 k, J2 U. H* B
@job_name = N'IncreaseUserCashJob', -- 作业名称9 w6 K* P2 e. u* W: N
@step_name = N'ExecuteStoredProcedure', -- 步骤名称8 Q- m0 u9 s8 J+ |
@subsystem = N'TSQL', -- 指定步骤使用的子系统(这里是Transact-SQL)
) }8 e% G( ~% Q% C @database_name = N'account', -- 指定数据库名称
7 i% Y9 R6 r+ Y. T @3 L @command = N'EXEC dbo.IncreaseUserCashByOnlineDuration;', -- 要执行的命令(存储过程)4 x- t1 A3 m- C& Y1 A: ]( C0 q
@retry_attempts = 5, -- 重试次数! H% g6 Y, S! W1 {# u9 B* e
@retry_interval = 5; -- 重试间隔(分钟)# y3 M: V! [3 a* ]1 H# Z
GO: G$ o! O$ D7 S/ u
) i' ]1 m/ b" N-- 为作业添加一个每分钟执行一次的调度6 _5 i3 k( _( o
EXEC sp_add_schedule
1 Y0 b% y8 V# O3 Y1 P/ |7 r6 X& @; Z @schedule_name = N'MinuteSchedule', -- 调度名称
$ c- N" ]1 S" q& w0 [ @freq_type = 4, -- 频率类型(4表示每日) A& i$ ?8 V: _4 j5 V! P7 v
@freq_interval = 1, -- 对于每日频率,这里设置为1表示每天都执行
* n! R. ^& ]; v \ @freq_subday_type = 4, -- 子日频率类型(4表示分钟)9 `- a5 N* A- G0 j* s% w1 @
@freq_subday_interval = 1, -- 子日频率间隔(每分钟执行一次)8 \9 T( b* {: {3 K& w
@active_start_date = 20250118, -- 活动开始日期(格式YYYYMMDD)% Q% P( e( p' }+ I. l. n+ R# P$ V" ]
@active_start_time = 0, -- 活动开始时间(以24小时制表示,0表示午夜)
: r& y9 X5 J4 E& J; D: H @active_end_date = 99991231, -- 活动结束日期(通常设置为一个遥远的未来日期)
0 i% X& R! Z5 m2 {3 R/ q, ? @active_end_time = 235959; -- 活动结束时间(以24小时制表示,235959表示一天的最后一分钟)
, r& c* d2 M* ^ B7 t2 D+ MGO9 [- Q6 E$ F8 Q8 ?/ I" S" y
' p" r) l+ {8 h' O) M; K! ~0 h
-- 将作业与调度关联起来4 k1 |! G& ?0 h4 U
EXEC sp_attach_schedule & B- a* N3 q* z
@job_name = N'IncreaseUserCashJob', -- 作业名称
8 U; b2 u4 a. J3 i* c1 e8 k# T) l! q# R @schedule_name = N'MinuteSchedule'; -- 调度名称
) ^" i/ G" c2 I; |" ]$ u( XGO( |3 B$ ?6 F. H D" w9 _ @4 y
5 }4 U, Y7 J9 c6 }! l8 K8 w-- 提交作业创建到SQL Server Agent! S9 L" J& C, C+ e
EXEC sp_add_jobserver
7 Z% Q" W9 J1 v+ T @job_name = N'IncreaseUserCashJob', -- 作业名称$ k8 ^( N* ~& |% S6 e$ ^
@server_name = N'(LOCAL)'; -- 服务器名称(对于本地服务器使用'(LOCAL)'), [3 g6 g. [/ E5 }. g. V9 }
GO
/ ] J) [/ g# K* K
0 m2 q; C% H2 U( |
7 \0 i3 Q2 ~( i2 F6 Y$ A* o8 i/ Q! }" D$ N! B3 z4 }2 N
4 T- D( C! \0 ?! ]( X/ B, L" v* O: R6 @
|
|