gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 23:42:45 25 4
gpt4 key购买 nike

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

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

也许我的处理方式是错误的。

我使用的是 SQL Server 2008

编辑 - Andriy M 的答案似乎是目前最好的,但正如评论中所述,我需要一种方法来“立即”实现这一点。是否可以从 SP 或触发器调用作业?或者也许有另一种方法可以达到类似的结果?

感谢大家的帮助。

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

最佳答案

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

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

关于sql - 表更新触发异步后从 SQL Server 运行控制台应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8648013/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com