仓酷云

标题: MSSQL网页编程之【xp_sqlagent_enum_jobs】获得SQL Ser... [打印本页]

作者: 愤怒的大鸟    时间: 2015-1-16 22:24
标题: MSSQL网页编程之【xp_sqlagent_enum_jobs】获得SQL Ser...
支持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吗
作者: 因胸联盟    时间: 2015-1-19 10:44
个人感觉没有case直观。而且默认的第三字段(还可能更多)作为groupby字段很容易造成新手的错误。
作者: 第二个灵魂    时间: 2015-1-28 05:58
至于淘汰的问题,只能说在你的项目周期之内,微软应该都不会倒闭。
作者: 变相怪杰    时间: 2015-2-5 18:16
对于数据库来说,查询是数据库的灵魂,那么SQL查询效率究竟效率如何呢?下文将带对SQL查询的相关问题进行讨论,供您参考。
作者: 小妖女    时间: 2015-2-13 05:47
而SQLServer如果能像Oracle一样可以为登陆分配如:5%的cpu,10%的内存。就可以解决这个漏洞。
作者: 分手快乐    时间: 2015-3-3 16:13
呵呵,这就是偶想说的
作者: 再见西城    时间: 2015-3-11 12:19
SQL语言是学习所有数据库产品的基础,无论你是做数据库管理还是做数据库开发都是这样。不过具体学习的侧重点要看你将来做哪一块,如果是做数据库管理(DBA),侧重点应该放在SQLServer的系统管理上.
作者: 再现理想    时间: 2015-3-18 13:28
从项目平台的选择上讲,我们关心的,应该是一款产品能不能满足任务需求,而不是网上怎么说。
作者: 不帅    时间: 2015-3-25 23:47
无法深入到数据库系统层面去了解和探究




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2