在表更新触发器异步后从SQL Server运行控制台应用程序?

kds*_*253 5 sql sql-server xp-cmdshell

我无法找到解决问题的最佳方法,请记住,我愿意接受更好的方法来完成这项任务.

我需要做的是,在我的表中的行值更新后,我需要使用该表中的2个字段作为控制台应用程序的参数.现在我可以通过在表上设置触发器然后使用xp_cmdshell带参数运行应用程序来实现此目的.但是我需要异步执行此操作,因此我的存储过程在等待控制台应用程序完成时不会挂起.

也许我会以错误的方式解决这个问题.

我正在使用SQL Server 2008

编辑 - Andriy M的答案似乎是目前最好的,但正如评论中所述,我需要一种方法来实现"即时".是否可以从SP或触发器调用作业?或者可能是另一种获得类似结果的方法?

感谢大家的帮助.

编辑 - 我选择他回答下面因为它帮助我找到了更好的解决方案.我最终做的是创建一个工作,只是查询我的表与另一个跟踪更新的行.然后,当我有我需要更新的行时,我使用xp_cmdshell运行我的应用程序与指定的参数.到目前为止,这个解决方案似乎运作顺利.

And*_*y M 5

直接从触发器运行应用程序还有另一个缺点.这与通常可以更新多行的事实有关.为了解决触发器中的问题,您可能必须在更新的行上组织循环并为每个行单独运行应用程序.游标通常被认为是最后的手段,触发游戏更是如此.

在这种情况下,我很可能会考虑创建一个SQL代理作业,该作业将从触发器填充的专用表中读取更新的值.我认为,这个工作仍然需要使用游标,但是你的触发器不会,而且重点是,从作业运行应用程序不会停止你的主要工作过程.