高级会员
- 积分
- 729
- 金钱
- 600
- 贡献
- 54
- 注册时间
- 2024-9-13
|
楼主 |
发表于 2025-1-18 17:04:14
|
显示全部楼层
第二步------------------首先需要SQL代理需要运行状态,在执行下面使用SQL作业计划每分钟运行一次-----------------------
) n0 U$ u/ F- o) n! y% O4 yUSE msdb;
4 U7 B/ v) V$ q5 T7 N) AGO
/ C5 s2 i' y8 u+ Q" P. n' C7 z! y4 |$ N
-- 如果作业已存在,则先删除它
3 U: N+ v! t* i6 D" x2 _$ GIF EXISTS (SELECT job_id FROM msdb.dbo.sysjobs WHERE name = N'IncreaseUserCashJob')* c( J6 X2 ^9 ` D
EXEC sp_delete_job @job_name = N'IncreaseUserCashJob';
2 @+ _. a2 t* \. l# N6 q' R- I5 }& Y4 rGO1 Y) M" N. h& H" ^+ ?
% |0 |4 M. V+ x-- 创建新的作业
; M7 _3 S$ c* ]! L+ k: ^EXEC sp_add_job m; Q; C5 ?2 z# u- I, E
@job_name = N'IncreaseUserCashJob', -- 作业名称# R) H5 ^' L& `6 ?* i" @4 h9 a
@enabled = 1, -- 启用作业
' G- o8 I; Z2 n2 [ J. k @notify_level_eventlog = 0, -- 不在事件日志中记录作业状态更改
, j7 D' q% k) L [' H3 I1 w: [4 s @notify_level_email = 0, -- 不发送电子邮件通知, y% w4 y6 k! i5 X1 P% X7 a
@notify_level_netsend = 0, -- 不发送网络消息通知& A' @) y9 }0 M' O$ C
@notify_level_page = 0, -- 不发送寻呼通知
) A1 D& Z% j4 |9 r @delete_level = 0, -- 不自动删除作业2 C: K: p* |; T! R# v% K. F
@description = N'This job increases user cash by 1 for all online users every minute.', -- 作业描述$ t. j8 h \: }% O0 r. \8 k9 O$ u
@category_name = N'[Uncategorized (Local)]', -- 作业类别
# f& Z+ ~) ^4 ^ @owner_login_name = N'YourLoginName', -- 作业所有者(请替换为实际的登录名)9 G" d) I" H5 Y& u
@notify_email_operator_name = N''; -- 不指定电子邮件通知操作员
5 ]4 z4 z/ ~! W7 G$ {3 w: J$ r# @! NGO. G( N2 s9 j; \) P8 i
3 ?/ x9 H9 S- C$ g9 D! u% ^* n-- 为作业添加一个步骤- @3 |% j8 z0 U+ s3 ?% L
EXEC sp_add_jobstep 8 M! i* t" q: S, R/ B* P
@job_name = N'IncreaseUserCashJob', -- 作业名称
) Z2 i9 K& ]! F$ J4 I* a @step_name = N'ExecuteStoredProcedure', -- 步骤名称/ x: ?' g v& ~3 j4 @
@subsystem = N'TSQL', -- 指定步骤使用的子系统(这里是Transact-SQL)4 d: e h; u) s% Z2 R9 e
@database_name = N'account', -- 指定数据库名称$ B! V# ^. F& L) [
@command = N'EXEC dbo.IncreaseUserCashByOnlineDuration;', -- 要执行的命令(存储过程)
* w& K3 Q% P, y% W @retry_attempts = 5, -- 重试次数
( s. M9 A9 }8 J @retry_interval = 5; -- 重试间隔(分钟)
7 Y* h4 w/ Q) J2 ^% ^GO
' N O: V& K+ K* r6 H. k0 m( x4 n, e6 u& C) M2 f& S
-- 为作业添加一个每分钟执行一次的调度2 f9 R& j( V E) a: e2 v$ q
EXEC sp_add_schedule & Z# F) o0 c) B- \5 |, q
@schedule_name = N'MinuteSchedule', -- 调度名称
t& h; b; p6 | @freq_type = 4, -- 频率类型(4表示每日)
' M7 a: G& L0 Q& Z C @freq_interval = 1, -- 对于每日频率,这里设置为1表示每天都执行' P% U7 b6 U2 c* u1 t
@freq_subday_type = 4, -- 子日频率类型(4表示分钟)# {. B" ^* o! Q- N2 b5 j1 b% y
@freq_subday_interval = 1, -- 子日频率间隔(每分钟执行一次)
% U ^$ J( W$ A/ M @active_start_date = 20250118, -- 活动开始日期(格式YYYYMMDD)
6 l, _% c$ n+ j8 ?9 K- v7 N: y5 Y; z @active_start_time = 0, -- 活动开始时间(以24小时制表示,0表示午夜)
4 t) q! }- [- ? @active_end_date = 99991231, -- 活动结束日期(通常设置为一个遥远的未来日期)9 c7 {0 R5 h- g: {( J
@active_end_time = 235959; -- 活动结束时间(以24小时制表示,235959表示一天的最后一分钟)
9 H" j6 R& m3 N% R) NGO7 N6 R3 ^7 c. w$ I
% _. b8 K6 \- O3 ~8 ^3 E* |-- 将作业与调度关联起来
* U' A! L2 [) {EXEC sp_attach_schedule
' u2 J$ m# K& `( K+ a- B+ E @job_name = N'IncreaseUserCashJob', -- 作业名称3 ?# s2 j2 c' B2 g
@schedule_name = N'MinuteSchedule'; -- 调度名称
8 r. w; X6 H* F1 w5 M* n3 z, Y% WGO) @. m! E! I5 C
) [; q( Y, l3 p1 K0 g
-- 提交作业创建到SQL Server Agent7 o; U7 F) R2 _9 U$ @1 U$ i
EXEC sp_add_jobserver
, t7 m1 b% H5 R6 ^3 ~1 l @job_name = N'IncreaseUserCashJob', -- 作业名称2 U F2 P" X1 l* [1 o0 V
@server_name = N'(LOCAL)'; -- 服务器名称(对于本地服务器使用'(LOCAL)')
" \2 |0 n' o3 y4 P) s- YGO$ L" n; S5 a3 U4 v% I
5 L; A$ s# h& v: N7 ]. J
. e" D/ O5 O0 o, m
- `+ k: j; s1 ^0 l
, l! N3 C4 z: t& y2 O; ?9 P, P6 E' L* A' P1 f$ M0 E" B
|
|