插入或者更新或者删除语句执行之后遇到报错没成功,要手动rollback吗?
------解决思路----------------------
若在外部程序中
未手动管理事务的话,会自动回滚(因为此处就你自己报错未成功)。
若手动管理事务,这个肯定自己得加上异常处理,至于是否rollback其他就看你要求。
在数据库中包、存储过程等处理的话
这个应养成考虑好异常处理的好习惯。
------解决思路----------------------
单句的 INSERT/UPDATE 语句,无论处理多少条记录,出错就一起取消(要么都成功要么都不成功),无需rollback。
多句的 INSERT/UPDATE 语句,如果有数据一致性的要求(比如从A账号扣100、向B账号加100),开始要起事务、出错也回滚。
正真调用 COMMIT TRAN 的次数不能超过 BEGIN TRAN,超过的命令会出错。
你确定你能点3次commit?可能软件记录了当前事务的状态,多余的点击就忽略了。
------解决思路----------------------
你试试去搜SQL-92之类的(英文)标准,基本上就属于“就是这么规定的”,没什么好讨论。