通过使用 Server.JobServer.jobs 获取作业列表的 SMO 对象,我可以找到每个作业的状态。对于那些当前正在执行的,我想找到它正在执行的 SPID。我还可以使用 Server.EnumProcesses() 获取服务器进程的列表。这给了我当前活动的 SPID 的列表。我想匹配两者。
我能想到的最好的方法是将 jobid 转换为字符串,并将 jobId 从 EnumProcesses 表中的程序字符串中取出(至少在我的系统上,该表将 jobId 嵌入到此描述中)。这真的很难看,有几个原因,其中最重要的原因是程序描述中的 Guid 和 jobID 的 guid 在字符串表示的前 3 段中切换了它们的字节。呸。
有没有更好的方法使用 SMO 来做到这一点?