当前位置: 首页 > 面试题库 >

Sql触发器是同步的还是异步的?

丁经略
2023-03-14
问题内容

我有一张上面有插入触发器的表。如果我从存储过程中的一条插入语句中向该表中插入6000条记录,那么在插入触发器完成之前,存储过程会返回吗?

只是为了确保我在正确地思考,触发器应该只被调用一次(我知道“被调用”不是正确的词)一次,因为只有1个insert语句,对吗?

我的主要问题是:即使触发器尚未完成,存储过程也会完成吗?


问题答案:

您的插入触发器将针对整个插入语句运行一次。这就是为什么使用inserted临时表查看实际插入的内容而不是仅选择最新的单个记录或类似内容的原因很重要。

我刚刚测试了插入和更新触发器,实际上,它们被sql server视为插入的一部分。在触发器完成之前,该过程不会完成。



 类似资料:
  • 我目前正在阅读Trevor Burnham的Async Javascript。到目前为止这是一本很棒的书。 他谈到这个片段和console.log在Safari和Chrome控制台中是“异步”的。不幸的是我无法复制这个。代码如下: 如果这是异步的,我会预期结果是books的结果。将console.log()放在事件队列中,直到所有代码执行完毕,然后运行它,它将具有bar属性。 虽然它是同步运行的,

  • 问题内容: 我意识到这是一个基本问题,但是我在其他地方找不到答案。 是同步还是异步? 万一它是异步的,是否有可能在传播了动作之后添加一个回调,这是可能的? 问题答案: AFAIK,调度动作是同步的。如果您愿意解决异步调用,则可以在redux中使用thunk- middleware ,其中将dispatch作为回调函数提供,您可以根据需要调用它。

  • 我试图找出如何在事务上下文中正确处理原子级的对Kafka的多次写入。在此场景中,事务不是由kafka消息侦听器启动的,而是通过@Transactional注释以编程方式启动的,请参见下面的代码段。 我使用的是spring boot 2.4.2和spring kafka 2.6.5。 KafkaProducer文档指出,在事务上下文中,不需要调用。get(),因为它最终会在尝试提交事务时引发异常。此

  • fixedDelay,任务总是等待,直到上一个任务完成。 上面的cron将每五分钟执行一次,我的问题是:@scheduled cron是否会等待前一个任务完成后再触发下一个作业?