获取SQL代理作业状态而不进行轮询?

时间:2010-11-09 15:37:09

标签: sql-server smo sql-agent sql-agent-job

我正试图找到一种让SQL Server“SQL Agent”在作业步骤事件上运行特定代码的方法。我曾希望有一种方法可以使用SMO来注册回调方法,这样当作业步骤开始或改变状态时,我的代码就会被调用。我没有任何成功。有没有办法把这些事件推给我,而不是轮询?

1 个答案:

答案 0 :(得分:3)

没有为工作执行暴露的Smo,DDL或跟踪事件(据我在联机丛书中可以看到),所以我认为你不能直接做你想做的事。如果您能够准确地解释您的目标(以及您的MSSQL版本)并且某人可能有一个有用的建议,那将会很有帮助。例如,如果要收集审计或性能数据,则跟踪可能是更好的主意。

与此同时,这里有一些想法(大多数不是很好'的想法):

  1. 将您的作业转换为SSIS包(它们具有完整的事件模型)
  2. 自己在工作步骤中构建一些东西
  3. 将作业步骤完成记录到表中,并使用表上的触发器来运行代码
  4. 运行跟踪并记录到表并使用表上的触发器来运行代码