|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
支持AIX、FreeBSD、HP-UX、Linux、MacOS、NovellNetware、OpenBSD、OS/2Wrap、Solaris、Windows等多种操作系统server|存储历程|实行xp_sqlagent_enum_jobs是微软未公然的存储历程,用于获得功课的相干信息,在本人举行调剂处置多功课时,用它来判别功课的实行情形再符合不外了。
createtable#help_job(
job_idUNIQUEIDENTIFIERNOTNULL,
last_run_dateINTNOTNULL,
last_run_timeINTNOTNULL,
next_run_dateINTNOTNULL,
next_run_timeINTNOTNULL,
next_run_schedule_idINTNOTNULL,
requested_to_runINTNOTNULL,--BOOL
request_sourceINTNOTNULL,
request_source_idsysnameNULL,
runningINTNOTNULL,--BOOL
current_stepINTNOTNULL,
current_retry_attemptINTNOTNULL,
job_stateINTNOTNULL
)--判别功课是不是正在运转
while@job_run_flag=1
begin
--删除一时表信息
delete#help_job
--增加信息
INSERTINTO#help_job
EXECUTEmaster.dbo.xp_sqlagent_enum_jobs1,sa
ifexists(select*frommsdb.dbo.sysjobsa,#help_jobbwherea.job_id=b.job_idanda.name=job1andb.job_state=4andb.request_source_idisnull)
begin
set@job_run_flag=0
end
else
begin
--延时一分钟
waitfordelay000:01:00
end
end
--实行其他功课
execmsdb.dbo.sp_start_job@job_name=job1
--更新服务器形态
--updateSYS_ServersetUpdateFlag=0wherePID=@PID
set@job_run_flag=1
b.request_source_idisnull必定要加上,不然屡次启动统一个功课的时分有大概报错。
我的存储历程,人人能够自创一下
CREATEPROCEDUREproc_pmis_main
AS
--更新筹办
execproc_pmis_updateready
--一时表
createtable#help_job(
job_idUNIQUEIDENTIFIERNOTNULL,
last_run_dateINTNOTNULL,
last_run_timeINTNOTNULL,
next_run_dateINTNOTNULL,
next_run_timeINTNOTNULL,
next_run_schedule_idINTNOTNULL,
requested_to_runINTNOTNULL,--BOOL
request_sourceINTNOTNULL,
request_source_idsysnameNULL,
runningINTNOTNULL,--BOOL
current_stepINTNOTNULL,
current_retry_attemptINTNOTNULL,
job_stateINTNOTNULL
)
--功课是不是正在运转
--1:正在运转;0:未运转
declare@job_run_flagint
set@job_run_flag=1
declare@PIDint
--轮回提取数据
declarearea_cursorcursorfor
selectPIDfromSYS_ServerwhereUpdateFlag=1andUseFlag=1orderbyPID
openarea_cursor
fetchnextfromarea_cursorinto@PID
while@@fetch_status=0
begin
--判别功课是不是正在运转
while@job_run_flag=1
begin
--删除一时表信息
delete#help_job
--增加信息
INSERTINTO#help_job
EXECUTEmaster.dbo.xp_sqlagent_enum_jobs1,sa
ifexists(select*frommsdb.dbo.sysjobsa,#help_jobbwherea.job_id=b.job_idanda.name=job_pmis_synchandb.job_state=4andb.request_source_idisnull)
begin
set@job_run_flag=0
end
else
begin
--延时一分钟
waitfordelay000:01:00
end
end
--实行同步功课
execmsdb.dbo.sp_start_job@job_name=job_pmis_synch
--更新服务器形态
--updateSYS_ServersetUpdateFlag=0wherePID=@PID
set@job_run_flag=1
--print(@PID)
fetchnextfromarea_cursorinto@PID
end
closearea_cursor
deallocatearea_cursor
droptable#help_job
GO
mysql的原来开发者又开发了MariaDB,MariaDB适合用来替代mysql吗 |
|