VBScript检查当前是否正在运行SQL作业

时间:2018-12-18 12:24:30

标签: sql vbscript

我可以获取已经完成的作业的状态并获取工期等等。我现在想做的是查看作业当前是否正在运行以及何时开始运行。我发现以下SQL查询,该查询显示它当前是否正在运行,并且当我从SQL Server Management Studio运行它时可以正常运行,但是当我从VBScript运行它时出现错误。

SQL代码:

EXEC sp_help_job @job_name = '(job name)', @job_aspect = 'JOB'

VBScript:

Option Explicit
Dim strConn, objConn, objRS, strQuery, i
strConn = "Provider=SQLOLEDB.1;Data Source=server;Initial Catalog=msdb"
Set objConn = CreateObject( "ADODB.Connection" )
objConn.Open strConn, "user","password"
Set objRS = CreateObject( "ADODB.Recordset" )
strQuery = "EXEC sp_help_job @job_name = '(job name)', @job_aspect = 'JOB'"
Set objRS = objConn.Execute( strQuery )
Do while not objRS.EOF
    For i = 0 To ( objRS.Fields.Count - 1 ) 
        MsgBox i & vbCr & objRS.Fields( i ).Name & vbCr & objRS.Fields( i ).Value
    Next
    objRS.MoveNext
Loop

我得到了错误:

Line:   8
Char:   1
Error:  The specified @job_name ('job name') does not exist
Code:   80040E14
Source: Microsoft OLE DB Provider for SQL Server

我用来从VBScript运行查询的帐户是一个SQL帐户,并且对msdb具有SELECT权限。可能是权限问题?我想给该帐户尽可能少的权利。

有什么想法吗? 谢谢

0 个答案:

没有答案