仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1006|回复: 8
打印 上一主题 下一主题

[学习教程] MSSQL网页编程之【xp_sqlagent_enum_jobs】获得SQL Ser...

[复制链接]
愤怒的大鸟 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:24:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

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

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 13:40

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表