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

标签 sql stored-procedures triggers timing

我有一个表,上面有一个插入触发器。如果我在存储过程的一个插入语句中将 6000 条记录插入到该表中,存储过程是否会在插入触发器完成之前返回?

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

我的主要问题是:即使触发器没有完成,sproc 会完成吗?

最佳答案

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

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

关于sql - Sql 触发器是同步的还是异步的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/210097/

相关文章:

mysql - 如何获取一周内两列的总计

c# - MySQL 存储过程参数不起作用

postgresql - 跟踪更新的列 postgresql 触发器?

mysql - 为什么 mysql 求值 (TRUE or TRUE and FALSE) 为真?

mysql - sql查询将两个查询合并为一个空行

sql-server - TSql 获取存储过程参数元数据

mysql - 无法更新存储函数/触发器中的表 'example_table',因为它已被调用此存储函数/触发器的语句使用

go - 是否可以使用 Golang 以编程方式创建 google 脚本触发器?

php - 有没有更高效的更新数据库值的方法?

php - 选择查询中的两级联接