小编典典

从触发器回滚事务

sql

在MS SQL Server 2008
R2中,我们需要一个预插入和预更新触发器,该触发器可以检查某些内容并允许(或通过raiserror)回滚正在运行的插入/更新。

问题INSTEAD OF触发。是否真的需要显式地编写插入或更新?因为我们希望完成默认的插入或更新操作,所以仅执行“预检查”。


阅读 150

收藏
2021-03-23

共1个答案

小编典典

是的。

您确实需要编写显式INSERTUPDATE

触发器运行INSTEAD OFDML操作。如果将触发器留为空白,则除了INSERTED/DELETED表将在创建和填充中/之外,将不会执行任何其他操作tempdb

尽管从评论中的讨论来看,我根本不会使用触发器,而是使用唯一的过滤索引CREATE UNIQUE INDEX ix ON T(a,b,c) WHERE c<> ''。在处理并发时,这可能会提高性能,并避免潜在的逻辑问题。

2021-03-23