我在某些情况下看到了交易使用情况,但从未真正理解应该在哪些情况下使用它们.应该如何以及何时使用交易(开始交易声明)?我已经读过Microsoft不建议在触发器和存储过程中使用事务语句(commit,rollback).
解决方法
在插入或操作数据时,事务可以与存储过程或sql脚本中的错误处理结合使用,以确保一切都是一致的.
例如,如果您有一个存储过程将记录插入父表和子表,您可能希望确保先插入父记录;如果失败,您可以回滚更改,以便您没有孤立的子记录.
Erland Sommarskog有一个关于如何在sql Server中使用错误处理的great article.
最后,Microsoft建议不在存储过程中使用事务?我认为存储过程将是使用它们的理想场所.