如何判断Sql agent job 是否执行完成

 我来答
千锋教育
2015-12-11 · 做真实的自己 用良心做教育
千锋教育
千锋教育专注HTML5大前端、JavaEE、Python、人工智能、UI&UE、云计算、全栈软件测试、大数据、物联网+嵌入式、Unity游戏开发、网络安全、互联网营销、Go语言等培训教育。
向TA提问
展开全部
通过创建新一个存储过程,在内部循环检查job的状态,当发现其执行成功之后,返回0。
SQL Server Agent 是一个任务规划器和警报管理器,在实际应用和环境下,您可以将那些周期性的活动定义成一个任务,而让其在SQL Server Agent 的帮助下自动运行;假如您是一名系统管理员,则可以利用SQL Server Agent 向您通知一些警告信息,来定位出现的问题从而提高管理效率。SQL Server Agent 主要包括以下几个组件:作业;警报;操作。
主要执行以下步骤在SQL Server Enterprise Manager 中配置SQL Server Agent:

(1) 启动SQL Server Enterprise Manager, 登录到指定的服务器打开Management 文件夹,启动SQL Server Agent。
(2) 右击SQL Server Agent 图标,在弹出菜单中选择Properties 选项。打开SQL Server Agent Properties 对话框,选中General 标签页。如图17-1 所示。其中各选项的含义为:
System account: 定义SQL Server Agent 运行于哪个系统账号下,该系统账号是sysadmin 角色的成员;
This account: 定义SQL Server Agent 运行于哪一个NT 账号下,该账号必须是运行SQL Server Agent 服务器上的sysadmin 角色,选择此选项,必须在Password处提供密码。常在下列情况中选中该选项:
把事件转寄到其它NT 计算机的应用日志;
如何来创建一个作业,该作业要使用多个计算机上的资源;
通过电子邮件或寻呼通知操作员消息。
Mail Profile 有效的邮件配置文件名,该文件保存通过SQL Mail 为SQL ServerAgent 运行账号配置的邮件系统正常工作的配置信息;
Save copies of the sent messages in the Sent Items folder: 指定发送消息存放的文件目录;
File name: 指定SQL Server Agent 日志文件名,缺省名为C:\Mssql7\Log\Sqlagent.out;
Error message pop-up recipient 指定接收网络弹出错误消息的接收者名字,这些错误消息由SQL Server Agent 写入它的错误日志。
(3) 选中Advanced 标签页
Auto restart SQL Server if it stops unexpectedly :表示如果SQL Server 意外停止运行,则将自动重新启动;
Auto restart SQL Server Agent if it stops unexpectedly: 表示如果SQL Server Agent意外停止运行,则将自动重新启动;
Forward events to a different server: 表示将事件转寄给其它服务器。在Server 旁的下拉列表中选择接收服务器;
Unhandled events: 表示转寄那些不是在本地服务器上处理的事件;All 表示所有事件;
If error has severity of or above: 表示只有在错误等级大于或等于给定值时,才将事件转寄给所选服务器;
Idle CPU(s) Condition: 定义了CPU 空闭状态的属性值,即CPU 平均使用率低于给不定期值且该状态持续的时间超过给定时间,则认为CPU 处于空闭状态。
4) 选中Alert System 标签页
Address formatting for page e-mails: 该区域用来设定消息属性并在寻呼信息中加入错误信息;
Fail-safe operator: 表示失败安全型操作员,如果由于不确定的原因使消息无法到达指定的操作员,则SQL Server Agent 会把该消息传给失败安全型操作员;
(5) 选中Job System 标签页
Job history log: 该区域指定日志的大小以及每件作业的最大行数,从而避免填满msdb 数据库;
Job execution: 该区域用来设定在作业执行结束前SQL Server Agent 的最长等待时间,如果超过这一时间作业仍没有执行,则SQL Server Agent 将关闭;
Non-SysAdmin job step proxy account: 该区域用来设定执行CmdExec 和ActiveScripting
作业的限制。
(6) 选中Connection 标签页
SQLServer Connection: 该区域定义了将SQL Server Agent 连接到SQL Server 时使用的认证模式;
SQLServer alias 定义:本地SQL Server 服务器的别名。
注意:配置完SQL Server Agent之后需要重新启动,这样配置才能生效
time陌言成殇
2015-01-06 · TA获得超过8.4万个赞
知道大有可为答主
回答量:1.4万
采纳率:91%
帮助的人:9438万
展开全部

您好,很高兴为您解答。

 通过创建新一个存储过程,在内部循环检查job的状态,当发现其执行成功之后,返回0。 

以下为引用的内容:

Create PROCEDURE [dbo].[Proc_GetStatus] 
AS 
BEGIN 
SET NOCOUNT ON 

DECLARE @xp_results TABLE 
(job_id UNIQUEIDENTIFIER NOT NULL, 
last_run_date INT NOT NULL, 
last_run_time INT NOT NULL, 
next_run_date INT NOT NULL, 
next_run_time INT NOT NULL, 
next_run_schedule_id INT NOT NULL, 
requested_to_run INT NOT NULL, 
request_source INT NOT NULL, 
request_source_id sysname COLLATE database_default NULL, 
running INT NOT NULL, 
current_step INT NOT NULL, 
current_retry_attempt INT NOT NULL, 
job_state INT NOT NULL) 

DECLARE @job_owner sysname SET @job_owner = SUSER_SNAME() 
INSERT INTO @xp_results 
EXECUTE master.dbo.xp_sqlagent_enum_jobs 1, @job_owner 

DECLARE @IsJobRunning BIT 

SELECT @IsJobRunning = x.running 
FROM @xp_results x 
INNER JOIN msdb.dbo.sysjobs sj ON sj.job_id = x.job_id 
WHERE sj.name = N'Utilization Gather And Process' --Insert your job's name between the single quotes 

while @IsJobRunning=1 
begin 
WAITFOR DELAY '00:00:20' 
INSERT INTO @xp_results 
EXECUTE master.dbo.xp_sqlagent_enum_jobs 1, @job_owner 
SELECT @IsJobRunning = x.running 
FROM @xp_results x 
INNER JOIN msdb.dbo.sysjobs sj ON sj.job_id = x.job_id 
WHERE sj.name = N'Utilization Gather And Process' --Insert your job's name between the single quotes 

end 

return 0 

End


如若满意,请点击右侧【采纳答案】,如若还有问题,请点击【追问】

希望我的回答对您有所帮助,望采纳!

                                                                                                                            ~ O(∩_∩)O~

本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式