考虑一个情景。我已经在INSERT
操作上创建了具有触发器的表T1
。和存储过程如下。从存储过程调用触发器(ROLLBACK触发器会发生?)
//StoredProcedure.sql
BEGIN TRANSACTION;
...
...
INSERT INTO TABLE T1
/* Trigger will be executed on record insertion in Table T1 */
.....
.....
.....
.....
Consider some error here...
.....
.....
COMMIT TRANSACTION;
.....
.....
ROLLBACK TRANSACTION;
在存储过程中的错误会调用ROLLBACK TRANSACTION
,它会在触发ROLLBACK
操作进行的?
MSSQL and MySQL
:考虑到理想情况下,它会ROLLBACK
由触发器执行的操作,但我希望您的问题的意见。
回滚当前事务中对该点所做的所有数据修改,包括由触发器进行的所有修改。 [回滚事务](https://msdn.microsoft.com/query/dev10.query?appId=Dev10IDEF1&l=zh-CN&k=k(ROLLBACK_TSQL); k(SQL11.SWB.TSQLRESULTS.F1); k(SQL11.SWB .TSQLQUERY.F1); k(MISCELLANEOUSFILESPROJECT); k(DevLang-TSQL)&rd = true) – 2015-03-25 09:39:41