我可以获取已经完成的作业的状态并获取工期等等。我现在想做的是查看作业当前是否正在运行以及何时开始运行。我发现以下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权限。可能是权限问题?我想给该帐户尽可能少的权利。
有什么想法吗? 谢谢