【问题标题】:Are sql triggers run in a separate thread?sql触发器是否在单独的线程中运行?
【发布时间】:2011-09-26 00:28:12
【问题描述】:

如果我想向用户返回一个网页并写入日志或逐字处理,我应该在新线程中使用来自 CLR 的存储过程调用还是只使用 sql 触发器?

【问题讨论】:

    标签: sql-server triggers


    【解决方案1】:

    您不能使 SQL Server 触发器异步运行。最好的办法是利用 SQL Server 的 Service Broker 来执行存储过程调用。

    【讨论】:

    • 我使用 c# 使用线程并且它们工作正常,但我想知道触发器是否为我这样做。这会节省我的时间。你的回复似乎回答了我的问题。但是 ADO.net 是在存储过程调用后返回结果,还是等到所有触发器都执行完毕?
    • @UğurGümüşhan 我很肯定INSTEAD OF 触发器肯定与数据流同步,但让我用AFTER 触发器测试一下。这是个好问题,我会告诉你的。
    • @Uğur Gümüşhan:ADO 不是 SQL,SQL 也不是 ADO。
    • @Surfer513:所有触发器是同步的,并作为 DML 的一部分运行。其中包括打开的交易。如果需要,长时间运行或复杂的逻辑等应该在事务之外:在存储过程中或使用 SB 将 2 解耦(如您所述)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-04
    • 1970-01-01
    • 2015-08-31
    相关资源
    最近更新 更多