如何使用事务(开始事务,提交事务)?

juu*_*uur 8 sql-server stored-procedures transactions sql-server-2005 sql-server-2008

我在某些情况下看到了交易使用情况,但从未真正理解应该在哪些情况下使用它们.应该如何以及何时使用交易(开始交易声明)?我已经读过微软不建议在触发器和存储过程中使用事务语句(commit,rollback).

Lit*_*les 5

在插入或操作数据时,事务可以与存储过程或SQL脚本中的错误处理结合使用,以确保一切都是一致的.

例如,如果您有一个将记录插入父表和子表的存储过程,则需要确保首先插入父记录; 如果失败,您可以回滚更改,以便您没有孤立的子记录.

Erland Sommarskog有一篇关于如何在SQL Server中使用错误处理的精彩文章.

最后,Microsoft建议不在存储过程中使用事务?我认为存储过程将是使用它们的理想场所.