高级会员
- 积分
- 812
- 金钱
- 678
- 贡献
- 57
- 注册时间
- 2024-9-13
|
楼主 |
发表于 2025-1-18 17:04:14
|
显示全部楼层
第二步------------------首先需要SQL代理需要运行状态,在执行下面使用SQL作业计划每分钟运行一次-----------------------
+ i+ G6 ]& F4 r2 k% pUSE msdb;7 J" ^! y: Q: ^* x; |+ `# ^. \
GO
/ E" Z% p+ _3 ]7 @' I$ t) ?4 P, [: D2 \1 y
-- 如果作业已存在,则先删除它5 Y, V% d' a, `
IF EXISTS (SELECT job_id FROM msdb.dbo.sysjobs WHERE name = N'IncreaseUserCashJob')
5 K- X) o) v. w: ^5 p EXEC sp_delete_job @job_name = N'IncreaseUserCashJob';% ]2 Y9 y1 e" |% M) \7 r: C Q( R7 X& x3 I
GO
8 }- s% U8 ^1 \' b3 u, z
& C. G7 u8 F' P9 `6 d-- 创建新的作业
/ g* @8 Z! g% U8 gEXEC sp_add_job
6 Y% e( ]! V3 \+ a0 L. _ @job_name = N'IncreaseUserCashJob', -- 作业名称3 Z- t; E, q' D# H
@enabled = 1, -- 启用作业
0 H& }* H) F3 w" o9 d% B) ~- F5 \0 L @notify_level_eventlog = 0, -- 不在事件日志中记录作业状态更改 [# R% U4 m2 Y4 w( B. {
@notify_level_email = 0, -- 不发送电子邮件通知
6 b1 K9 w" n) x0 q: ]9 p. \ @notify_level_netsend = 0, -- 不发送网络消息通知
$ m/ _+ q; a& k, } @notify_level_page = 0, -- 不发送寻呼通知
/ g. b* T9 W, f1 w. `& v @delete_level = 0, -- 不自动删除作业4 a: A! `; d7 Y. T
@description = N'This job increases user cash by 1 for all online users every minute.', -- 作业描述- `+ D* y. Q/ ], e2 j& s
@category_name = N'[Uncategorized (Local)]', -- 作业类别
6 x( I# L1 O& K) D7 c" l9 L @owner_login_name = N'YourLoginName', -- 作业所有者(请替换为实际的登录名)
, o* l8 l1 h: `7 ]; k @notify_email_operator_name = N''; -- 不指定电子邮件通知操作员
) Z- b G0 ]# `& R% K) AGO# E$ c9 o! J& Z- Y/ Q |+ v( L
) R0 K/ d0 t* l3 E8 V* D3 `8 t8 }-- 为作业添加一个步骤
- i9 o; C* }# N$ \EXEC sp_add_jobstep Z) [* Y+ H7 E6 c# W, w" |
@job_name = N'IncreaseUserCashJob', -- 作业名称
4 Q4 z: j4 h4 L6 V5 [" m& U4 ] @step_name = N'ExecuteStoredProcedure', -- 步骤名称% {0 p! D0 s" h/ L4 c
@subsystem = N'TSQL', -- 指定步骤使用的子系统(这里是Transact-SQL)
! I7 U7 `/ C5 ~ @database_name = N'account', -- 指定数据库名称- V: }1 d& ~: x' @# s1 \
@command = N'EXEC dbo.IncreaseUserCashByOnlineDuration;', -- 要执行的命令(存储过程)% ^" |" e6 G J( T: N
@retry_attempts = 5, -- 重试次数4 n& L) P/ i" I# O+ d; B4 n
@retry_interval = 5; -- 重试间隔(分钟)
% G5 |% v& b5 U" R2 S. f' Z& k" {GO
; u3 Z4 Z# v$ k& C* Z
& A* S7 K. i7 z/ E! u9 y- \% w-- 为作业添加一个每分钟执行一次的调度
7 M! @4 I) I* q" v8 hEXEC sp_add_schedule
( a. [2 q, ?3 ]- w. P+ B0 k1 }) `6 A @schedule_name = N'MinuteSchedule', -- 调度名称
* L5 c5 }% k2 i* g% C" H @freq_type = 4, -- 频率类型(4表示每日)' |" \1 z7 k' I) i% u/ |
@freq_interval = 1, -- 对于每日频率,这里设置为1表示每天都执行
" h: V! C* i( C) m" E6 Y @freq_subday_type = 4, -- 子日频率类型(4表示分钟)% L; H7 u+ c5 `- }$ k5 Q, ^5 x
@freq_subday_interval = 1, -- 子日频率间隔(每分钟执行一次)
/ Y, j& }; n2 c9 L. t8 q @active_start_date = 20250118, -- 活动开始日期(格式YYYYMMDD)0 P& x f4 w4 Y" m
@active_start_time = 0, -- 活动开始时间(以24小时制表示,0表示午夜) w9 i7 a1 n; U
@active_end_date = 99991231, -- 活动结束日期(通常设置为一个遥远的未来日期)* p- U; q# W9 F1 A/ a) z
@active_end_time = 235959; -- 活动结束时间(以24小时制表示,235959表示一天的最后一分钟)0 [% F/ C8 G4 e) _( e, G# k# e
GO6 I1 U% l( D; M
% u3 _$ X- }6 C. g+ z& e
-- 将作业与调度关联起来
. r& I* z; g1 _4 L) }EXEC sp_attach_schedule 9 w2 U5 V+ @8 t1 j9 ]5 P( J
@job_name = N'IncreaseUserCashJob', -- 作业名称
1 x* f* b% N7 V, C0 H* g' ?. o' X @schedule_name = N'MinuteSchedule'; -- 调度名称- \/ r6 d$ E8 i1 V% ~
GO
& p5 L7 b' e5 x% R; f! i0 o I
; z8 X3 h0 N8 E-- 提交作业创建到SQL Server Agent4 w W- g5 A" `0 [, B
EXEC sp_add_jobserver O. E* X; q T/ ?5 b
@job_name = N'IncreaseUserCashJob', -- 作业名称5 `( P( \& Z% s' l
@server_name = N'(LOCAL)'; -- 服务器名称(对于本地服务器使用'(LOCAL)')
7 c* s/ V) _" I- N% o/ h- ~' DGO- ^0 Q/ G( m) Q3 l! p
4 I6 @" ?6 R8 Q H. y4 ^! d
x1 p/ s" l" s( }$ n
1 w+ @# p. W4 |- T8 @+ x6 S
3 e: z5 `* C4 U# j# F1 d
: h& F, q0 Y w2 o8 Z* H1 e, O |
|